Web 开发者对 HTML5 的期待越来越强烈,作为一个以文档为中心的置标协议,HTML 越来越不能满足现代 Web 应用的需要,何况,这个协议已经有超过 10 年没有更新了。HTML5 旨在解决 Web 中的交互,媒体,本地操作等问题,一些浏览器已经尝试支持 HTML5 的一些功能,而开发者们有望最终从 那些 Web 插件中得到解脱。
过,需要指出的是,尽管一些重量级 Web 技术厂家,象 Apple,Google, Mozilla 基金会, Vimeo,YouTube 已经开始支持这个新标准,但W3C 表示,HTML5 前面的路还很长,它的一些细则目前还存在争议,主流的 Web 在转至 HTML5 之前还要经过很长的时间,而开发者们也不得不面临两难的境地,就是如何使用现在的技术设计出富 Web 应用,同时又为今后的 HTML5 做好准备。
富 Web 的现代 HTML
富 Web 应用和 HTML 之间并不般配,Web 之父 Tim Berners-Lee 这样看待 HTML,它是一种用来创建平台独立的超文本文档的置标语言,随着 XHTML 的诞生,W3C 也将网页视为文档。
这样那些视 Web 为应用平台的开发者十分恼火,2004年,Apple, Mozilla 基金会和 Opera 成立了一个超文本应用技术工作组(WHATWG),寻求创建一个 W3C 之外的标准组织,以打造一个更适合应用的 Web。
2007年,他们的 XHTML2 陷入永无止境的纷争之中,后来,W3C经投票决定吸纳 WHATWG 的工作成果,并作为 HTML5 的标准,这时,即使 Tim Berners-Lee 也对面向应用的 Web 伸出橄榄枝,他说,现在看来,我们面向 XML 所做的那些努力是无效的。
这并非说纯净的 XML 语法已死,虽然 HTML 的发展方向已改,但在 HTML5 发展的同时,XHTML5 也在同步进行中,区别在于,XHTML 将适用于那些已经向 XML 转换的人,而对于普通开发者,则不一定使用 XHTML。
HTML5: 标签的改变
HTML5 吸取了 XHTML 2 的一些建议,包括一些用来改善文档结构的功能,比如,新的 HTML 标签 header, footer, dialog, aside, fugure 等的使用,将使内容创作者更加语义地创建文档,之前的开发者在这些场合是一律使用 div 的。
HTML5 还包含了一些将内容和展示分离的努力,开发者们也许会惊讶,b 和 i 标签依然存在,但它们的意义已经和之前有所不同,这些标签的意义只是为了将一段文字标识出来,而不是为了为它们设置粗体或斜体式样。u,font,center,strike 这些标签则被完全去掉了。
新标准适用了一些全新的表单输入对象,包括日期,URL,Email 地址,其它的对象则增加了对非拉丁字符的支持。HTML5 还引入了微数据,一种使用机器可以识别的标签标注内容的方法,使语义 Web 的处理更为简单。总的来说,这些与结构有关的改进使内容创建者可以创建更干净,更容易管理的网页,这样的网页对搜索引擎,对读屏软件等更为友好
实现基于标准的富Web
然而,HTML5 最令人振奋的是那些让开发者们实现富应用的新 API,诸如图形,动画,多媒体,在HTML5 之前,这些功能的实现需要 Flash,RealMdeia,QuikTime 一类的插件,这些插件技术不仅容易带来安全隐患,而且它的受众是受限的。
HTML5 通过使用相应的置标语言解决了这些问题,内容创建者可以使用类似 MathML 以及 SVG 之类的语言实现数学公式和图形的创建,这些语言比 Flash, Silverlight 一类的格式更容易跨平台使用。
Web 开发者们更会为 HTML5 的 audio 和 ideo 标签欢呼,这些标签让 Web 页面轻松实现媒体的嵌入,它们的编码标准是中立的,意味着浏览器厂商可以自己使用何种编码输出媒体,而它的 video 标签更将使那些不支持 Flash 的移动浏览器获益匪浅。
Canvs 标签会让交互式 Web 图形更上层楼,开发者可以使用 Javascript 操作 canvas 中的对象,实现实时的交互式图形操作,甚至实现交互式游戏。除了这些可以看到的变化,HTML5 还引入基于浏览器的程序缓存,将应用数据在本地缓存(就像之前的 Google Gears 插件),这不仅能加速 Web 程序的运行,还可以使一些程序在离线时仍可使用。事实上,Google 现在慢慢取消对 Gears 的支持,全面转向 HTML5。
浏览器插件:还不至于死
尽管 HTML5 推出了这么多新功能,但不要指望那些插件会一夜消失,纯粹的 HTML5 要实现目前这个插件世界的全部功能还要很长的时间,更不要说那些需要继续支持的旧系统。比如,虽然 Vimeo 和 YouTube 已经开始使用 video 标签输出视频,然而事情并不是那么简单,W3C 还没有确定使用何种编码方案,这意味着,那些视频并不能保证在任何设备上都能看。比如 Apple, Google 以及微软都主推 H.264 编码,而开源的 Firefox 则不愿意,因为存在许可问题。
另外,并不是所有旧系统都会以 HTML5 重写,比如,尽管 Google 自己都不再看好 Google Gears 而主推 HTML5,但 Gooel 承认,HTML5 并不能实现 Google Gears 的全部功能,将基于 Google Gears 的应用转换为纯 HTML5 是不可能简单实现的。
最后,五花八门的浏览器也会阻碍 Web 开发者们向 HTML5 转移,IE6,旧版本的 Firefox,Opera,Safari 都不支持 HTML5,因此,除非,绝大多数人的浏览器都升级到最新状态,否则,面向 HTML5 的开发仍将面临各种困境。
早期采用者
尽管微软已经表示,IE9 会支持 HTML5,但他们对此事也抱谨慎态度,微软认为,在 HTML5 标准都未确立的今天,说自己的浏览器支持多数 HTML5 功能是不妥的。事实上,任何组织都不可能比 W3C 更清楚 HTML5 的进度,而 W3C 认为,HTML5 标准仍未成熟,功能确立要到2011年前才能完成,即使到了那时,将这些东西确立为标准也需要到2022年,也就是说,XHTML1.1 到 HTML5 大约要15年。
不管怎么说,HTML5 将是未来 5 到 10 年最前沿的技术,那些早期采用这可以在网络中找到大量的体验站点,目前,体验 HTML5 的最好浏览器是那些基于 Webkit 引擎的浏览器,如 Chrome 和 Safari,Firefox 不太流畅。Web 开发者们可以使用目前的 HTML5 草案创建试验站点,当然在当前浏览器分布体系下,还会有些问题,线上最好的 HTML5 开发资源是 Mark Pilgrim's excellent Dive into HTML5。