16

这个问题受到了这个问题的启发其中最受好评的答案建议使用 HTML 5 中的功能。这对我来说当然是一个好方法,但它让我对使用未来规范中的功能感到好奇。

HTML 5 提供了许多不错的改进,其中许多可以在当前浏览器中使用而不会引起问题。

一些例子:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

许多这些新功能旨在使浏览器能够自动验证表单,并为它们提供更好的输入(例如日期选择器)。有些只是方便,似乎是为未来做好准备的好方法。

它们目前在当前浏览器中没有破坏任何东西(据我所知),它们允许干净、通用的客户端代码。

然而,即使它们在 HTML 5 中都有效,但它们对 HTML 4 无效,而且 HTML 5 在这一点上仍然是草稿。

尽早使用这些功能是个好主意吗?

是否存在我没​​有意识到的浏览器实现问题?

我们现在应该开发利用 HTML 5 草稿特性的网页吗?

4

7 回答 7

12

有几件事情需要考虑:

  1. 首先,验证并不意味着太多,因为 HTML 页面很可能是有效的,但编写不当、无法访问等。请参阅“有效 HTML”图标说不和将XHTML 作为文本/html 视为有害(参考另一个回复中提到的 hobo-web 测试)
  2. 鉴于此,我强烈推荐使用新的 DOCTYPE:在 HTML5 中使用它的唯一原因是它是在浏览器中触发标准模式的最小的东西,所以如果你想要标准模式,那就去吧;你几乎没有理由使用另一个冗长、容易出错的 DOCTYPE
  3. 至于表单增强,您可以使用 Weston Ruter 的webforms2 JS 库将其带到非感知浏览器
  4. 最后,关于data-*属性,它 a) 适用于所有浏览器(只要您使用getAttribute()),b) 仍然比滥用titleorclass属性更好,并且 c) 不会像我们之前所说的那样用验证来打扰您,验证不是t很重要(当然是,但如果有效性错误是故意的,那么您的页面无效并不重要;并且您已经可以在 W3C 验证器中使用 HTML5 验证,所以...);所以也没有真正的理由不使用它们。
于 2009-06-19T10:33:15.530 回答
2

好问题!

简而言之:这取决于您的背景和风险承受能力:)

稍微长一点:

  • 认为在早期采用技术方面突破极限总是好的。它让你在商业世界中比后来者更有优势,也让你在影响技术出现时有更多的影响力。

  • 如果您不想重新编写代码或更新源代码,那么早期采用可能不适合您。想要编写可靠、稳定且无需更改的代码是非常值得尊敬的,但这完全取决于您(以及您的业务环境)

于 2009-06-19T06:00:32.250 回答
2

如果您的页面严重依赖搜索引擎放置,则可能值得考虑某些引擎优先验证 HTML(来源: http: //www.hobo-web.co.uk/seo-blog/index.php/official- google-prefers-valid-html-css/)。

此外,值得考虑的是,依赖新的日期输入元素(例如 Opera 中的那些,可能还有其他元素)可以为开发人员提供更多便利,它通常会排除更复杂的 Javascript 控件,这些控件可以更好地为旧浏览器提供服务(通常回退到一个简单的文本输入字段)。

当然,一如既往,不要依赖浏览器端检查并验证所有输入服务器端。

于 2009-06-19T06:11:45.943 回答
2

在您至少可以在一个浏览器中进行测试之前,请不要使用这些新功能。例如,如果您使用现在表单功能,请务必在 Opera 中进行测试。否则,你可能会因为贡献有毒的遗产而弊大于利。

当某个功能已经在浏览器中实现并且您正在使用这些浏览器进行测试时,当然,请使用新功能。

另请参阅较旧的答案

于 2009-06-22T12:28:02.350 回答
1

请参阅稳健性原则

在 RFC 761(传输控制协议,1980 年)中,美国计算机科学家 Jon Postel 总结了 Internet 协议(参见 IEN 111 1 ,RFC 760)所需的互操作性标准的早期通信如下:

TCP 实现应该遵循稳健性的一般原则:在你所做的事情上保持保守,在你从他人那里接受的事情上保持自由

所以,恕我直言,不。

于 2009-06-19T06:04:18.763 回答
1

至少在所有主流浏览器都支持之前,我不会从 HTML 中实现新功能。

客户不关心您的页面是否有效,他们更关心它是否可以跨浏览器工作。即使我们努力实施最新标准,仍然会有客户和公司永远不会放弃他们的 IE6,而且 IE6 将在他们的浏览器需求列表中停留一段时间。

欢迎使用新的表单类型,但必须在服务器端检查表单。

将现有文档传递到 HTML5 需要大量的努力和适应,而且我估计不会在一夜之间发生。预计至少需要 3 年才能成为主流。

于 2009-07-09T18:18:16.810 回答
0

我会使用 HTML 5 只是为了好玩和学习,但我肯定不会用这个新标准来接触我的任何生产代码(现有代码),至少现在直到我有正当理由支持这一举措。

于 2009-07-09T18:24:46.063 回答