日期:2013-12-28 浏览次数:20728 次
如今的HTML5就像当年崭露头角时的Ajax,有人在做,但不知道叫它什么。最近,苹果在HTML5上大做文章,而著名的Web设计师Eric Meyer则提出了Web Stacks的概念。Alex Kessinger是Yahoo的一名前端工程师,本文是他对HTML5使用现状与前景的思考。
开源模式带来转变
O’Reilly创始人,TimO’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成为标准的时间,IanHixie的说法最受认可:
“依据估量,HTML5直到2022年才会构成W3C推荐标准”
然而,虽然标准的构成尚待时日,但浏览器厂商曾经在实现各种HTML5功用。
功用探测vs浏览器探测
如果你是开发者,你可以使用那些高级功用,但需求进行功用探测并提供渐进式设计。坊间有大量的功用探测库,如Modernizer,另外,Mark Pilgrim有一个清单,它可以让你探测任何功用。
离线API
离线API是一切HTML5使用的基础,不单单是离线数据的事,对开发者来说,拥有本地存储(local Storage)自然很好,但如何让程序完全离线运转?Application Cache是答案。如果不能离线保存源文件和数据,我们就无法实现离线的HTML5使用。
我们目前有几种离线存储机制,简单的如localStorage和SQL存储引擎,曾经有一些浏览器在支持了,而最新的明星是IndexedDatabase,它得到了所有主流浏览器支持。这些离线保存使用和数据的能力,是HTML5的基础,目前,Webkit,Firefox曾经可以实现,而IE9也即将实现。即时IE9的支持还需求等待,想一下,最需求离线使用的场合是哪里,自然是智能手机和上网本,智能手机多数都是用Webkit。
W3C Web使用任务组:HTML5使用的下一步
W3CWebApps标准曾经做了大量任务,包括API及HTML5 Web程序细则。
HTML5使用的打包部署HTML5 apps–QuirksBlog博客文章中说,"对于本地/离线HTML5使用,W3C Widget packaging and configuration是首选机制,并将成为理想标准,很多厂商曾经开始对之进行实现。W3C Widgets支持任意平台的Vodafone S60和Samsung手机,Opera桌面与挪动浏览器,Bolt浏览器以及Windows Mobile6.5。BlackBerry也支持,不过需求特殊的Java包。"这些都是标准,本质上讲,如果你有一个HTML5使用,它就会包含HTML,CSS,以及JS,这些标准只不过偶是协助开发者将他们的程序打包发行,如果你熟悉PEAR,它们是很类似的概念。你可能需求一些元数据,通知系统你的程序是如何打包在一同的,在支持这些标准的平台上,你就可以保证你的用户可以顺利运转这些程序。
其它
HTML5还有更多API可以协助开发者创建使用,这些API可以让你的程序访问诸如本地文件,摄像头,SOCKET通服气务,以及硬件动画加速等。这些API仅仅是开端,这样的API后期会越来越多。
HTML5程序可以使用在哪里?
当然是浏览器,如果一个设备拥有一个浏览器或渲染引擎,而且这个引擎是现代引擎,它就可以运转HTML5程序。HTML5程序会使用在以下几种场合。
桌面
如果你拥有一个符合Web标准的浏览器,就可以运转HTML5使用。桌面仍然很重要。
指定站点浏览器
诸如Gmail一类的站点可以看做一个使用,使用专门的浏览器运转,这样的浏览器没有地址栏,是专门用来运转指定站点使用的,甚至可以制造一个安装包来分发。以下资源值得一看,Prism,Fluid/Fluidium以及NativeHost。
挪动领域
这是HTML5最抢手的运转场