第13章 HTML5概要
13.1 HTML5的历史
HTML5的发展历程
随着 Web 应用程序的范围越来越广,JavaScript的功能局限性也渐渐引起了人们的注意。仅靠JavaScript 无法实现数据的永久保存、套接字通信、音乐与视频的播放等在桌面应用程序中常见的功能,于是在一些特定领域,Web 应用程序的发展要慢于桌面应用程序。
浏览器插件的普及
在此之前,为了弥补 JavaScript 所缺少的功能,采用的是 Flash 或 Silverlight 等插件。也就是说,尽管有这样的需求,但这些功能并没有被作为浏览器的标准功能被提供。
即使如此,如果有浏览器开发商率先实现了某一个新的功能,但没能在所有的主流浏览器中得到支持的话,这一服务还是不能得到进一步利用。因此,从功能扩充的角度来说,在很长一段时间里,仍然需要在浏览器中安装 Flash及 Silverlight 等插件。
统一的浏览器标准的制订
HTML5 就是在那些不满于现状的浏览器开发商的共同合作下诞生的。为了更有效率地实现功能的扩展,必须要有统一的标准。
但是,现在广泛普及的 HTML 的标准制定止于 1999 年 W3C 所推荐的 HTML4.01 版本。虽然 W3C 对 XHTML 的普及付出了很多的努力,但最终 XHTML 并没能像预期的那样得到普及。因此,对 W3C 的方式怀有不满的Apple、Mozilla、Opera 成立了名为 WHATWG 的社区。WHATWG 的目的是通过与当前 Web 发展状况相适应的方法,制订与 Web 相关的技术标准,并将其反馈给 W3C。
HTML5标准制订的起步
在历经这一发展阶段后,W3C 终于与 WHATWG 开始了合作,制订 HTML5 的标准,并在 2008 年 1 月 22 日发表了第一份 HTML5 草案。在执笔本书时,最终版本的草案(2011 年 5 月 25 日)已发表,今后 W3C 将按照下面的进程逐步使 HTML5 成为推荐标准,并以 2014 年完成这一推荐为目标。
- 草案(Working Draft)
- 最终草案(Last Call Working Draft)
- 推荐候选(Candidate Recommendation)
- 推荐方案(Proposed Recommendation)
- 推荐(Recommendation)
13.2 HTML5的现状
13.2.1 浏览器的支持情况
PC
当前,针对 PC 的浏览器市场正处于一种 Internet Explorer(IE)、Firefox、Chrome、Safari 及 Opera 等浏览器在相互争夺份额的情况。如果希望在这些针对 PC 的浏览器中提供使用了 HTML5 的服务的话,需要注意一个问题,即 IE(6、7、8)几乎不支持任何的 HTML5 的相关功能,并且它们的市场占有率相当高,让人无法忽略。
Microsoft 声称将从 IE9 开始加强对 HTML5 的支持,并且也确实在 IE9 中实现了很多的 HTML5 的相关功能。
因此,如果要通过 HTML5 来提供针对 PC 的服务的话,则需要区分不同的浏览器。但是
,在这种情况下,检查浏览器的种类或版本等并替换处理方式的做法不易管理,所以通常会
在执行 JavaScript 时判断所需功能是否被支持以选择相应的处理方式。目前,可以通过
Modernizr 3 等工具能够实现这一功能。
智能手机
如果将目标限定于智能手机,情况将与 PC 有很大的不同。之所以这样说,是因为市场份额正在迅速增加的 iOS 与 Android 这两个针对智能手机的 OS 都默认使用了基于 WebKit 4 的浏览器。特别是在日本,iOS 与 Android
占据了非常高的市场份额,所以只要对 WebKit 提供了支持,就能够支持几乎所有的智
能手机了。
因此,在开发针对智能手机的 Web 应用程序时,几乎不需要考虑跨浏览器支持的问题。甚至可以说,智能手机是现在最容易进行 HTML5 开发的领域。
电视机
并不是只有 PC 与智能手机才会安装浏览器。现在日本厂商制造的很多电视机中都装有基于 NetFront 这一针对嵌入式设备设计的浏览器的定制版浏览器。目前这些浏览器几乎还不支持 HTML5 相关的功能。
最近索尼终于在其电视机中预置了 Opera 浏览器,以此为开端,使用 HTML5 的功能强大的 Web 应用程序开发环境也日趋成熟。加上 Apple TV 与 Google TV 等产品的开发,电视机浏览器这一领域今后的动向也受到了人们的瞩目。
13.2.2 Web应用程序与原生应用程序
从 Gmail 开始,已经出现了很多以 Web 应用程序的形式提供的实用程序。与过去相比,使用原生应用程序的机会少了很多。而最近的浏览器甚至实现了 3D 图形的渲染功能,这一势头让人不禁觉得总有一天所有的程序都会改以 Web 应用程序的形式存在了吧。
不过,无论浏览器的扩展功能如何发展,只要浏览器还是一种原生应用程序,它在能够实现的功能方面就不会有什么优势。即使如此,支持将浏览器作为一种应用程序平台也是有其理由的,其中之一就是开发的成本问题。
例如,通常情况下在针对智能手机的原生应用开发中都需要使用 OS 开发商所发布的 SDK。大致说来,就是对于 iOS 终端主要使用 Objective-C、对于 Android 设备主要使用 Java、对于 Windows Phone 7 7 设备则会使用 C# 或 Visual Basic 以进行开发。在程序设计语言与 SDK 的学习、应用程序的实现、今后的后续修改等方面,所花费的成本将会与需要支持的平台数量成比例上升。
而 Web 应用程序正是解决这一领域问题的最佳方案。通过 HTML/CSS/JavaScript 开发的 Web 应用程序能够通过浏览器运行于所有的智能手机上。在目前的智能手机应用开发中,Web 应用程序几乎可说是实现跨平台支持的唯一手段。