1.3 真正认识HTML 5
通过上一节对跨平台移动开发框架的学习,不知道读者有没有发现一个问题,为什么这些框架都是基于HTML 5的呢?解答这个问题之前首先要理解另一个问题,即什么是HTML 5,图1-22为HTML 5的标志。
图1-22 HTML 5
HTML 5是1999年指定的HTML 4和XHTML标准的“标准版本”,目前仍然处于不断完善阶段。但是目前主流浏览器已经实现了对HTML 5大多数属性的支持。简而言之,HTML 5就是对过去HTML标准的一种增强和补充。
在新的HTML 5标准中,强化了页面的表现性,如对圆角、透明以及阴影的支持。除此之外,还提供了本地存储以及数据库的支持。提及HTML 5时,实际上是泛指新的HTML 5标准以及CSS3和JavaScript等技术交叉而成的新技术。
HTML 5还提供了canvas控件来支持动画以及绘图等功能,同时也支持页面元素的拖曳功能。HTML 5中的圆角以及透明、阴影等效果,已经被广泛采用,而诸如本地数据、Ajax交互、定位等功能却常常被忽略。这些都有待开发者继续探索。
1.3.1 初识HTML 5
HTML 5确实不是一项很新的技术。
首先,HTML 5标准在20年前就已经出现。也就是说,它比已经过时的Windows XP还要年轻。
其次,HTML 5是一项标准而不是技术。试想如果在招聘会上有公司说要招聘熟练掌握ISO9001技术的求职者是不是一件非常可笑的事?
各大浏览器厂商在近几年才实现了对HTML 5大多数属性的支持,这也就是为什么这项“古老”的“技术”在近几年才突然火了起来。HTML 5相关“技术”如图1-23所示。
图1-23 HTML 5相关“技术”
1.3.2 只要在网站上加一句<! HTML 5 Doctype>就是HTML 5网站了吗
HTML 5绝对不仅仅是一个<! HTML 5 Doctype>,它包括一套完整的最佳实践、语义标签、排版元素等。试想一下,如果仅仅加一句<! HTML 5 Doctype>就可以的话,那么多互联网厂商为什么还要高薪聘请熟悉HTML 5的开发人员呢?
事实上,当前的市场上确实存在着大量利用HTML 5来进行欺骗的现象。例如,当运营商计划开发一个网站,所雇佣的软件公司对所开发的网站进行介绍时,往往会加上一句“该网站是基于HTML 5的”,笔者甚至看到过某国企的新闻中有过“基于HTML 5的PHP 5新闻网站改版”这样的高技术性标题。对于这样的宣传或者误导,也许并不能说是欺骗,因为有了<! HTML 5 Doctype>的确就表示页面是基于HTML 5标准的。但这些页面中的内容基本上没有用到任何属于HTML 5的新特性(最多也就是用到圆角或是插入一段jQuery脚本),甚至都没有体现HTML 5最基本的框架结构。
提示
笔者想起了一名大学同学,他学会使用绘声绘影,当时在整个大学还没有人熟悉这款软件,于是他就大言不惭地表示自己的图形学技术是全校最牛的。这就有点像当前的HTML 5开发行业。虽然加入了标签<HTML 5 Doctype>就表示该页面是支持HTML 5规则的,可是如果页面中属于HTML 5的新特性都没有用到,又怎么能说是HTML 5呢?
1.3.3 HTML 5变迁
这是与HTML 5 Doctype截然相反的一个谎言。这往往是那些没有掌握HTML 5标准或对HTML 5一知半解的开发者,在面对掌握了HTML 5标准的竞争者时的一种托词。由于目前的资料不够完善,使得HTML 5被常常用到的只是一些像圆角和阴影这样的样式效果(而且这其实是CSS 3的内容),但是请读者相信,HTML 5的强大功能绝对不仅仅是这些。
图1-23列举了一些与HTML 5相关的技术,包括CSS、JavaScript、SVG、Canvas、定位、动画等新的内容,可以实现许多之前所不能实现的效果。图1-24就是利用HTML 5实现的游泳池特效,这在HTML 4时代是绝对不可能实现的。
图1-24 HTML 5生成的泳池特效
1.3.4 HTML 5浪潮
好吧,这其实是笔者开的一个玩笑,不过身边确实有不少神化HTML 5的例子,人们用HTML 5作为一种噱头来吸引大众的注意。例如,在东三省一次大学生嵌入式比赛中竟然见到了“基于HTML 5的智能寻路小车”这样的题目。
上一小节以一张图片来举例说明HTML 5的强大之处不仅仅是多了个圆角或阴影那么简单(如图1-24所示)。图1-25是在HTML 5论坛中找到的一幅漫画,以一种夸张的手法描绘了HTML 5的强大。
图1-25 强大的HTML 5
在1.2.3小节介绍了几款基于HTML 5的跨平台开发框架,其中包括Cocos2d-X,也就是说HTML 5能够很好地支持游戏类应用,这使得HTML 5的作用在开发者眼中被无限放大。图1-26也是一幅漫画,描述了当前基于HTML 5的应用数量之多。这也在某种程度上说明了HTML 5为什么会一次又一次地被开发者所神化。
图1-26 “各怀鬼胎”的HTML 5应用
套用在某博客上看到的一句话:使用HTML 5绝对不会让你看上去更性感,除非你是Bruce Lawson(Opera公司总裁)。HTML 5毕竟只是一个工具,能够帮助开发者更加快速便捷地实现自己的梦想,那些盲目推崇HTML 5,甚至是滥用HTML 5的开发者无疑是不理智的。但是不得不说,目前从事HTML 5的研究确实是比较有前途和钱途的。HTML 5无疑给我们提供了一个很好的机会,如果能尽早投身HTML 5变革的热潮,必定能领先一步。
为什么跨平台移动开发框架几乎都是基于HTML 5的?因为既然要跨平台,首先就要保证让所有移动平台都能够支持,而HTML作为一种脚本语言,显然是支持这一点的。很难想象一款智能手机没有浏览器会是什么样子。另外就是各大浏览器厂商对于HTML 5的支持近乎完善,使得HTML 5有能力扛起这一艰巨的任务。图1-27为各大主流移动浏览器厂商对HTML 5的支持情况。
图1-27 几家手机浏览器进行HTML 5跑分情况对比
HTML 5中定义了强大的本地存储和离线存储功能,使得页面更像一个应用,手机硬件的发展使设备的运算能力能够支撑起这些效果,另外JavaScript的存在使得应用具有强大的交互能力。
另外,HTML 5相对其他语言更容易上手,让新手能够在极短的时间内开发出比较完善的应用。
提示
虽然说简单、易上手降低了开发的门槛,但是所能带来的回报却不一定降低。
综合这几点特性,就促成各大主流跨平台框架都选择使用HTML 5作为工具。即使之前没有接触过HTML也没关系,因为这些开发框架将开发所需要的HTML知识精简到很小的一部分,以至于任何人都可以快速上手。