【发布时间】:2009-10-06 04:41:48
【问题描述】:
我应该为我的 Web 应用程序关心 HTML 5 ... 为什么?
或者换一种说法,我应该注意哪些 HTML5 新特性?
【问题讨论】:
-
请参阅stackoverflow.com/questions/1418875/… 和相关问题。
标签: web-applications html
我应该为我的 Web 应用程序关心 HTML 5 ... 为什么?
或者换一种说法,我应该注意哪些 HTML5 新特性?
【问题讨论】:
标签: web-applications html
HTML5 是新浏览器功能的开发平台。它现在本身不是一个可用的标准,并且在很长一段时间内都不会。 “创作到 HTML5”你一无所获;规范未完成,将更改。
HTML5 成果中的一些特性在今天已经部分可用:画布、音频/视频、postMessage、DOM 存储等等。其中许多功能都被分解为自己的规范 - 谢天谢地,因为正在进行的 HTML5 规范本身太大且混乱,无法应付。
此外,HTML5 规范中提到的一些功能并不是新发明,而是已经获得一些支持的旧浏览器扩展。例如。丑陋但广泛传播的猪contentEditable。甚至还有像 <embed> 这样年长的“朋友”第一次记录在案(更遗憾的是)。
When can I use... 很好地概述了我们在几个 HTML5 和 CSS3 特性方面的立场。还有 LIIP 的 HTML5 comparison (PDF)。
【讨论】:
是的。 HTML 5 将成为新标准,并提供很多内置于浏览器中的功能,我们目前依赖第三方应用程序提供这些功能(视频/音频支持和用于绘图的画布支持等等)。
【讨论】:
嗯,这取决于。如果您只是在做一个“我在这里”页面,您可以使用 HTML 4。如果您正在尝试制作最先进的 youtube,其中有很多有用的功能。这个问题确实需要更多的背景知识来回答。
【讨论】:
采用 HTML5 的主要原因是支持将音频和视频直接集成到浏览器中,无需任何额外的软件或编程指令。这种推理存在一些问题。
1) HTML 不存在于可用性或多媒体方面。这些从来都不是它的目标,也不是语言的意图。 HTML 的目的是将内容描述和构造为供人类消费的数据,无论它是否由人类编写。
2) 95% 以上报告的安全漏洞与客户端脚本有关。这包括以下技术:Flash、Acrobat、ActiveX、Silverlight、JavaScript 等。将这些技术的特性直接集成到 HTML 中意味着将那些与安全相关的技术故障直接集成到 HTML 中。需要插件执行的客户端脚本技术允许这些插件的供应商在发现安全漏洞时快速开发和发布安全补丁。 HTML 多久更新一次?
3) HTML5 忽略了与当前 HTML 形式相关的所有问题:安全性、可访问性和语法一致性。对 HTML 进行细微的更改可以改善 Web 的安全性,例如对 iframe 的使用施加限制,iframe 是 JavaScript 和 ActiveX 相关漏洞中增长最快的攻击媒介。可访问性一直是 Web 的一个问题,对标题标签 (h1 - h6) 的更严格要求可以显着减少文本阅读器用户对内容导航的混淆。 HTML 可能是有史以来最松散且语法上最多样化的语言,它极大地削弱或消除了许多辅助技术的访问。
支持 HTML5 的原因,如上面第 1 点所述,是为了嵌入多媒体。这很重要的原因是荒谬的,没有任何意义。让我们回顾一下常见的支持任务:
1) 它是未来,所以你必须支持它。这是表面上的逻辑谬误。无论它是否声称是该语言的下一个版本,您都可以选择支持它。浏览器至少在十多年内都不会放弃对 HTML 4 或 XHTML1 的支持。
2) 如果您不支持它,您将被抛在后面。 这来自链接在该主题的评论中的文章“HTML5 即将到来:忽略它,后果自负”。这篇文章使用了一些电视遥控器和彩色电视的隐喻,这对当前的主题没有任何意义。如果您不支持 HTML5,您可以继续支持 Flash、Silverlight 和其他媒体插件技术。即使在 HTML5 发布后,供应商仍将继续支持这些产品,他们将继续像过去一样工作和创新。
3) HTML5 将为您目前必须依赖插件的音频/视频提供支持。这些功能没有理由必须存在于 HTML 中。 Flash 是一个非常多产的插件,没有理由无法在任何可衡量的范围内使用基于 Flash 的媒体来吸引观众,而这只能通过将这些问题强制转换为 HTML 来解决。
4) 学习和编写像 ActionScript 这样的代码所花费的时间很昂贵,通过将这些优势强加到 HTML5 中可以节省开发成本。 这来自文章“为什么 HTML5 是一个游戏规则改变者,它对你意味着什么。在这个线程中链接。这是完全弥补的。媒体需要时间来发展。用于处理 Web 上的多媒体的客户端脚本需要时间来编写。现在,无论您从哪里强制执行这些东西,仍然需要开发时间。任何衡量或研究开发成本节约的背后都没有数字。这是作者完全编造的,作者错了。 HTML 为您创建视频并为您提供代码的那一刻,即自动为用户提供视频而不考虑自定义的过程是作者停止错误的那一刻,但在此之前,媒体将始终需要时间来创建和发布。
5) doctype 字符串太混乱而无法记住,HTML5 通过简单的 doctype 声明解决了这个问题。 到目前为止,在问题的任何 cmets 中都没有说明这一点,但在别处有说明。如果 HTML 编码人员无法复制 doctype 声明,这是在 Google 搜索中找到的第一个结果,那么该开发人员还有其他更严重的问题需要解决。复制和粘贴变得过于复杂的时候就是停止编写代码的时候了。
我的观点是,支持 HTML5 没有充分的理由。根据赛门铁克的研究,去年安全故障和入侵平均给企业造成 1130 万美元的损失,因此不支持 HTML5 有充分的理由。
【讨论】:
HTML5 是万维网的核心标记语言 HTML(超文本标记语言)的下一个主要版本。 Web 超文本应用技术工作组 (WHATWG) 于 2004 年 6 月以 Web 应用的名义开始制定规范。
HTML5 是针对 HTML 4.01、XHTML 1.0 和 DOM Level 2 HTML 提出的下一个标准。 HTML5 有望成为 Web 应用程序开发的游戏规则改变者,使 Adobe Flash、Microsoft Silverlight 和 Sun JavaFX 等基于插件的富 Internet 应用程序 (RIA) 技术过时。
阅读:
【讨论】:
如果您打算使用类似canvas 和 svg/whatever 不合适的东西,那么我认为这确实是当今时代使用 HTML 5 的唯一实际案例(对于非个人网站)。否则请坚持使用标准 HTML 4 Strict/XHTML 1.0,因为这些规范实际上是完整的。
【讨论】:
如果您想针对现代浏览器进行开发,或者您的目标是特定设备,例如使用jQTouch 为 iPhone 编写 HTML 应用程序,那么是的,这很重要。它使在客户端上存储数据变得简单。
您可以使用诸如modernizr 之类的库来轻松检测对HTML5 功能的支持并优雅地降级。此外,没有什么能阻止您使用 HTML5 文档类型:
<!DOCTYPE html>
因为它将所有相关浏览器(包括 IE6)置于标准兼容模式。
此外,随着 IE 6、7、8 的 Chrome Frame plugin 等颇具争议的事物的出现,您可以说是尽早开始使用 HTML5 功能。
【讨论】:
与以前的 (X)HTML 版本相比,HTML 5 更加以网络应用程序为中心。
也许最重要的变化是 Web Forms 2.0,它添加了验证 (!)、加密密钥生成输入、多个日期和时间输入、数字输入、电子邮件和 URL 输入、输出元素以及更多。
还有其他功能,例如列出要预缓存的 URL、更好的布局模型(页眉和页脚元素)以及可自动转换的值:例如,计量和时间,允许浏览器进行转换英里到公里,以在某些文化中展示。有许多新元素用于进度条、旁边(用于侧边栏)、图形、可扩展细节、菜单等。
太多人被音频、视频和画布标签所困扰,这将显着简化媒体嵌入 (today, it's a mess),并提供更好的用户控制。尽管您可能听说过,但这并不一定意味着 Flash 或 Silverlight 的终结。浏览器可以轻松地利用这些技术为这些元素提供功能,但必须在用户级别而不是开发人员级别进行竞争。
这仍然是相当有争议的,并且不能保证浏览器会完全实现这些东西(HTML4 中的 optgroup 在那里失败了),或者很好(客户端证书在那里失败了),并且规范还没有完成,因此可能需要再等一会儿,看看支持是否会在明年左右完全烘烤。
【讨论】:
将 HTML 5 视为 HTML 4 的下一个化身是完全错误的,事实并非如此。 HTML 5 远远超出了 HTML 4 的能力。 HTML 5 旨在成为一个成熟的基于 Web 的应用程序平台。所以这不仅仅是关于如何在网络浏览器中显示“事物”。
当我们谈到需要在没有 JavaScript 的情况下工作的网站“网站”时,这也意味着这个时代的结束。 JavaScript 是 HTML 5 和网络未来不可或缺的一部分。
当然,如果你想实现这些东西,这取决于你,但我猜在接下来的几年里,每个人都会使用它。除 Microsoft 外的浏览器供应商正在以惊人的速度实现这些功能。已经可以实现很多 HTML 5 API。
【讨论】:
正确答案是:视情况而定。
浏览器领域有很多利益相关者,其中一些(咳 Microsoft cough)对公共标准怀有敌意的历史。虽然许多人吹捧视频标签是使用 HTML5 的一个理由,但应该指出的是,MS 并不完全支持它,而且苹果和诺基亚在格式支持方面很棘手(苹果拥有 Quicktime,诺基亚是 MP4-AVC 专利持有人)。
其他功能(例如存储提案)基于这样一种理念,即用户和供应商不会出于安全考虑而简单地禁用这些功能(例如现在经常阻止 cookie)。
HTML5 的根本问题是浏览器供应商的一致性是可选的。它可以决定任何它想要的东西,但它不能让浏览器供应商遵守。这使供应商有机会根据自己的利益要求持有规范以勒索、忽略它或“拥抱和扩展”它。
从我在 WHATWG 列表中看到的情况来看,大多数 HTML 的成功都来自于很少或没有能力从不符合项中获利的领域。这基本上意味着像标题和对话框标签、自定义属性和其他大多数 Web 开发人员永远不会使用、理解或关心的东西。
我基本上认为它走的是 Open GL 3.0 的道路。被公司议程所破坏,直到它成为其预期荣耀的阴影。为时已晚,没有太多价值,基于浏览器供应商和版本的 HTML5 将有一百种不同的实现,因此设计师在 10 年后仍将写入 HTML4,只是为了在他们的页面中保持一些一致性。
几乎所有东西都取决于微软,因为 IE 不支持的任何东西都会被零星地采用。鉴于微软在这一领域的历史,再加上他们在 WHATWG 讨论中明显缺席,他们对 Silverlight 和 Windows Presentation Framework 的积极推广,他们在 Office 中不合标准的 HTML 呈现/创建(参见 Outlook 2007 争议)以及他们对 CSS3.0 的缓慢采用和 HTML5 功能,他们很难有很大的信心。
【讨论】: