你对一门Web前端技术抱有怎样的期待?
除了简单易用,它还要完美支持媒体元素、可以实现网页的3D化效果、可以操作本地文件、具有足够的安全性、能做一些数据存储工作,另外,如果能从底层改变当前Web的通信机制就更好了。
注意,这里提到的是“一门”技术,而不是很多种技术的综合,不是Javascript、不是RIA、不是某种网络协议。这是目前我们所能看到的还处于草案阶段的HTML 5。
作为最基础的Web技术,HTML语言已经10年没有过大范围的改变,这十年间互联网从技术到应用都已沧海桑田;与纷繁的服务器端技术的进化相比,人们甚至已经淡忘HTML还需要升级,还可以增添更多的属性和功能。
HTML版本历史
◆超文本标记语言(第一版)——在1993年6月由互联网工程工作小组(IETF)工作草案发布(并非标准)
◆HTML 2.0——1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时
◆HTML 3.2——1996年1月14日,W3C推荐标准
◆HTML 4.0——1997年12月18日,W3C推荐标准
◆HTML 4.01(微小改进)——1999年12月24日,W3C推荐标准
◆ISO HTML(“ISO/IEC 15445:2000”)——2000年5月15日发布,基于严格的HTML 4.01语法,是国际标准化组织和国际电工委员会的标准
当我们第一次关注HTML 5标准是在2008年的一篇文章《HTML 5正式标准恐2022年才能正式发布》。这篇报道中,HTML 5标准的编著者Ian Hickson为HTML 5的推出列出了一个时间表。他假定各个浏览器开发商会在HTML 5处于最后起草阶段时开始全面支持HTML 5,而这就将HTML5的广泛应用推后到了2012年。更糟糕的是,最终的推荐性正式标准直到2022才会发布。
当时,这篇报道并没有引起人们太多的注意;关于HTML 5,国内媒体也没有太多关注。但小编认为,作为一项重要的基础性技术标准,HTML 5有必要被我们关注和熟知
等介绍HTML 5的技术概览和入门文章。随后,这个未来的Web开发标准开始渐渐被人们注意,并在Youtube正式开放HTML 5视频功能、iPad不支持Flash等消息被广泛传播后开始迅速升温。
HTML 5 vs Flash
有时,媒体的放大器作用也需要时机。iPad不支持Flash(苹果官方的说法是资源占用和耗电量等原因),引发了一场HTML 5与Flash的技术论战。一时间,不明就里的媒体开始疯炒HTML 5来临 Flash死亡倒计时 。人们将视线聚焦在HTML 5的视频功能上,并开始与其他RIA技术相提并论,比如:
◆HTML 5会为Flash和Silverlight送终吗?
◆HTML 5真的能战胜Flash和Silverlight?
◆HTML 5怎么就成了RIA“杀手”?
这些文章用疑问句和危机感引起了多数读者的注意,Adobe CEO甚至亲自站出来反驳。事实上,HTML 5与Flash等RIA技术并不是一个层面的技术。虽然在相同的应用需求下(Web视频方面),HTML 5可以用自身的标签(主要是和)代替Flash的部分功能,但也仅仅是“代替”和“部分”而已。
以Flash在这个领域多年积累的优势,几年内少有技术能够撼动;何况2022年才发布的HTML 5标准给Adobe留下了足够的时间拉开距离。更重要的是,HTML 5是Web前端的实现技术,它更专注与内容的格式与输出;而Adobe的Flash却有一套完整的RIA技术解决方案。
另外,看看《HTML 5视频音频元素全解析》一文我们就会知道,作为一门标记型语言,HTML 5在实现Web视频方面稍显无力,Flash开发者无法再使用他们熟悉的ActionScript脚本来控制页面的交互逻辑和功能。习惯于DIV+CSS的前端工程师们也未必接受HTML变的更复杂。
HTML 5与Flash的可笑对决因为媒体的放大而被大家熟知并谈论;某种程度上,这成为树立HTML 5彪悍形象的强大推力,HTML 5正在被神化,我们似乎忘记了,它只是一门标记语言,只是铺在浏览器里等待被解析的一堆尖括号。
对Web视频的支持只是HTML 5众多“神奇”功能中的一个,它还有更神奇的地方。
法力无穷的HTML 5
HTML 5 File API,有关文档操作的API,改善基于浏览器的Web应用程序处理文件上传的方式,使文件直接拖放上传成为可能。目前,草案定义了新的输入选项 ﹤input type=”file”﹥ 来处理文件上传。
安全沙箱机制,针对iframe元素增加sandbox属性,可以防止不信任的Web页面执行某些操作。可以有效防止访问父页面的DOM、读写COOKIE、本地存储或本地SQL数据库等。
HTML 5 Web SQL Database,使用本地和会话存储实现简单的对象持久化,对简单的关键值对(比如应用程序设置)或简单对象(如应用程序状态)进行存储,使用本地和会话存储能够很好地完成。
HTML5 3D技术标准,内建3D技术的支持,无需插件即可将网页3D化;不仅可以简化开启显卡3D网页硬加速功能的操作步骤,而且还规定了一套适合网页使用的3D图形接口界面,支持脚本化运行。
改变Web通信机制!定义在HTML 5规范的通信章节HTML 5 Web Socket可以通过一个单一的Socket实现一个全双工,双向通信的信道。HTML 5 Web Socket提供的标准可以使用它构建可扩展的实时Web应用程序。
以上所提到的功能特性存在于目前的HTML 5草案中,我们可以想象正式标准公布之时会有怎样一串长长的特性列表。而在正式标准公布之前,关于未来Web开发标准的神化运动会一直进行下去。
本来这篇文章写到这里就可以收尾,但想起了一位网友对HTML Web Socket一文的评论,也许可以从一个侧面反映出人们对HTML 5的无奈、愤怒和期待:“真正应该关心的技术,是屏蔽各代技术之间差异的库或者框架,比如Flash,sliverlight,java applet,甚至各种js库”,该评论的完全版请点这里。
新特性“威武”
这是个新功能新特性“论斤称”的时代。我们经常看到某种技术(或软件)在更新版本时都会附上一堆强悍的功能列表;并在大家争相传颂之后,被视为神迹。而之前的Bug修正列表在近几年很少被提及。技术造神论在厂商和媒体的不断炒作中渐渐神化得无比强大,哪怕它现在只是个草案或者概念。但当这些技术真正来到我们面前时,我们却只能以一种仰视的角度无奈的看待它们。
这其中所隐含的是技术更新与实际需求的不对称;厂商的技术竞争策略与真实应用开发环境的不对称。技术的演进不在我们触手可及的地方,你需要在一堆新概念新噱头中学会疲惫的跳跃。
这其中的关键是开发者应用需求与厂商商业策略的背离:我们和技术厂商都期望的太多,却很少重合。