程序员人生 网站导航

有关 HTML5 的应用现状与发展前景的思考

栏目:htmlcss时间:2013-12-28 09:24:17

现在的 HTML5 就像当年崭露头角时的 Ajax,有人在做,但不知道叫它什么。最近,苹果在 HTML5 上大做文章,而著名的 Web 设计师 Eric Meyer 则提出了 Web Stacks 的概念。Alex Kessinger 是 Yahoo 的一名前端工程师,本文是他对 HTML5 应用现状与前景的思考(完整图文版)。

术语

首先说说 HTML5 应用中的几个定义。

HTML5

HTML5 最好的定义来自 Mark Pilgrim 的 Dive Into HTML5:

"HTML5 是继 HTML4.01,XHTML 1.0/1.1 之后的下一代 HTML"

值得一提的是,我们或许能看到 HTML6,然而按 Pilgrim 在 WHATWG 博客中的说法,下一代 HTML 很可能去掉版本号这一概念。

应用

来自 Wikipedia 的解释:

"应用程序是计算机用来执行特定任务的软件"

HTML5 应用

从用户的角度,HTML5 应用和其它的计算机应用程序还不完全一样,但已经很接近。从开发者的角度,HTML5 应用是一些基于 HTML,JavaScript,CSS 的程序,它们使用开放技术,可以离线使用,可以取代诸如 Silverlight 及 Flash 等专用平台的部分工作。或者说,多年来,你用来创建 Web 页面的东西,现在可以用来创建类似桌面和智能手机程序的应用。开源模式带来转变

O’Reilly 创始人,Tim O’Reilly,一位开源的支持者,曾在《Open Source Paradigm Shift》中如是说:

"IBM 对个人电脑设计的商品化使利润从硬件转移到软件这一层面,而开源将带来新的财富"

价值在不同的层面转移,HTML5 将成为新的层面,商品的价值在下降,现时的浏览器已经成为商品,但这并没有问题,只要它们都遵守标准。人们说,我们可以将操作系统置入浏览器中,但这行不通,如果我们可以从过去的经历中学到些什么,那就是,不能简单照抄过去的模式,好比广播到电视的变迁,你不能简单地在一个播音员面前放台摄像机完事,将操作系统置入浏览器未必比 HTML5 离线应用本身更有价值。发布渠道的重要

诸如 苹果应用商店,Android 应用商店一类的渠道将成为主导,另外,一些新的,象 Valve 游戏渠道,Netflix 电影渠道一类的东西将会出现,在”云“时代,这些发布渠道将像桌面时代的操作系统一样用来对用户进行组织和归类。

我们是如何到达现在这个阶段的?

有两个关键的因素。

感谢 Web 标准

尽管浏览器市场并不统一,但至少他们都运行 HTML,JavaScript 和 CSS。当我们希望通过 Web 推出一些东西的时候,我们知道,无论如何,用户都能看到,然而你能想象人们都自己定义 Web 时的情景吗,假如有人不使用 HTTP协议,或者不使用 HTML,那才是世界的末日。W3C 一类的组织让各个浏览器厂家都保持同一个方向。

还好,我们并没有很多渲染引擎

浏览器并不好做,数十亿的网页,参差不齐的代码,这些东西让独立开发者没有机会单独设计浏览器,因此,有能力设计浏览器的始终是那么一小撮厂商,事实上,时至今日,我们只有四种主要的浏览器渲染引擎,Trident (IE), Gecko (Mozilla, Firefox), WebKit (Chrome, Safari), 以及 Presto (Opera),而众多浏览器都是建立在这些渲染引擎之上的。这意味着,不管在什么样的设备上,我们不用太担心它使用什么样的浏览器,不管什么设备,只要它有一个浏览器,就有一个可以运行 HTML5 的环境。标准何日面世?

关于 HTML5 成为标准的时间,Ian Hixie 的说法最受认可:

"根据估计,HTML5 直到 2022 年才会形成 W3C 推荐标准"

然而,虽然标准的形成尚待时日,但浏览器厂商已经在实现各种 HTML5 功能。

功能探测 vs 浏览器探测

如果你是开发者,你可以使用那些高级功能,但需要进行功能探测并提供渐进式设计。坊间有大量的功能探测库,如 Modernizer ,另外,Mark Pilgrim 有一个清单,它可以让你探测任何功能。

离线 API

离线 API 是一切 HTML5 应用的基础,不单单是离线数据的事,对开发者来说,拥有本地存储(localStorage)自然很好,但如何让程序完全离线运行?Application Cache 是答案。如果不能离线保存源文件和数据,我们就无法实现离线的 HTML5 应用。

我们目前有几种离线存储机制,简单的如 localStorage 和 SQL 存储引擎,已经有一些浏览器在支持了,而最新的明星是 Indexed Database,它得到了所有主流浏览器支持。这些离线保存应用和数据的能力,是 HTML5 的基础,目前,Webkit,Firefox 已经可以实现,而 IE9 也即将实现。即时 IE9 的支持还需要等待,想一下,最需要离线应用的场合是哪里,自然是智能手机和上网本,智能手机多数都是用 Webkit。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐