前言
HTMl5自去年以来日趋流行,我也时不时的去关注和学习一些边边角角的东西。在这个过程中作了一些笔记,也留下了自己的一些思考,所以在这里记下来的既有一些“客观”的技术背景,更多是自己的“主观”看法,希望能和其他学习者进一步交流,希望过一段时间再看时能有更高层次的认识。
HTML是什么
平时在看一种新技术的介绍时,我最喜欢看的是按照“它是什么”和“它不是什么”这样的逻辑来阐述的文章。不过我暂时还没能力这么写...
HTML首先是W3C制定的一套规范和定义,而不是具体实现。就好比TCP/IP是一套协议,而世界上有很多套TCP/IP协议的实现:你既可以用C/C++来实现它,也可以用Java等其它语言来实现。浏览器是最常见的一种实现和支持HTML的应用,但它既不是唯一(其它如Yahoo的Widget引擎),也不仅仅包括HTML(例如插件和各种扩展等)。HTML往往不会单独出现,现在最流行的技术就是HTML+CSS+JavaScrip+AJAX。
HTML提供了一种技术,使得全世界的网页编程人员能够以统一的语法规范来编写网页,以其为载体来呈现文字、图形、动画、声音、表格、链接等内容,从而带给互联网用户统一的互联网体验。
目前世界上流行的绝大部分网页都是用HTML4编写的,而HTML5是前者的升级版本。HTML5也并不是从一开始就确定的,早些时候W3C的XHTML工作组,他们希望用具有更严格语义和语法的XHTML 2.0,同时也是一个彻底重构的激进版本,来替换HTML4,但是这一计划内部受阻,甚至连互联网和W3C的初始化人Tim Berners-Lee都公开发表博文表示不同看法,所以后来HTML5才被扶为正统。
HTML5包括那些内容
很多时候我们提到HTML5时,所指可能并不一定严格相同。我用自己的话来表达,就是狭义的HTML5和广义的HTML5。
狭义上的HTML5常常指HTML本身,甚至仅仅指代基于XML的HTML标识(Tag)及其相关语法。你如果去上一些培训课,就会发现这就是老师大部分时间都在教的内容和范例。HTML5相对于HTML4而言最大的亮点主要在以下几个方面:
- 增加了对Canvas、Video和Audio等标签的支持,多媒体和绘画、甚至动画的展现能力得到极大的增强
- 增加了一些更具语义的标签或接口,例如aside,header,footer等
- 修改或废弃了一些HTML标签和语义,如新表单特性,Marquee,frameset等
- 建议将颜色/尺寸/对齐排版相关的属性都移到CSS中,HTML5主要负责网页的布局
广义上的HTML5则包括网页的前端技术,即:狭义的HTML5 + CSS3 + JavaScript + Web Application API,可能还包括对SVG、插件等的支持。其中的Web Application API包括了一些HTML5最重要、最令人激动的特性(既然是API接口,说明这也仅是一套规范定义,具体每个浏览器实现是不一样的):
- Server-Sent Events:服务器发起的消息事件(暂且这么翻译吧...),轻松实现服务器端发起的更新,类似Push机制。注意它是单向的
- Web SQL Database:客户端可以以SQL的形式将数据保存在本地数据库中(不知为何Web Application工作组说他们不在维护这部分文档)
- Web Sockets:客户端可以利用WebSocket协议和主机进行双向通信,比XmlHttpRequest更加强大、高效和减少流量
- Web Storage:客户端的本地存储能力,包括Session相关(例如网页订单的状态)和全局相关数据(例如地图数据和游戏关卡信息等)
- Web Workers:允许客户端端像C++等高级编程语言那样,将一些耗费时间的纯运算操作,以类似线程的方式来运行在非UI线程中,并以消息(Message)机制进行通信
关于Web Application API
这是我个人的看法:Web Application API的雏形其实在HTML4时代就已经存在,Yahoo、Apple等公司各自推出的Widget规范中就定义了一些基于不同平台实现的扩展接口,其目的就是要由网页向应用升级,既能兼容W3C的HTML规范,又能兼具本地应用(Native App)的一些特性;既像HTML网页那样那样易于部署和无缝升级,又兼有本地应用的强大功能。
而这也正是制定Web Application API的主要目的:兼具跨平台和强大功能两大特性。
Web Application API原本可能也是作为HTML5规范的一部分的,但是工作者在编写的过程中发现,它们会使HTML5变得十分庞大,再加上这些特性本身比较独立,可以作为接口而不是语法来定义,于是就把它们归到Web Application 1.0这个大规范集来统一编写,所以严格来讲它们并非HTML5的一部分。
所以,从这个角度而言,HTML5其实不是全新的技术,HTML5其实就是“扩展的HTML4 + 若干标准封装的操作系统接口”。
小结
所以在我看来,HTML作为一套独立于平台的标准规范,它最伟大的贡献在于其在发展过程中得到了各大厂商跨平台性的支持,让全世界的互联网用户得以不用关心其背后的技术细节,而获得相对比较统一的互联网体验。再往拔高的层次来说,它就像现实世界中统一的电压、单位制式,甚至是统一的经济和政治制度,全世界人民正是基于这一平台,才能实现知识的扁平化,以及交流的无缝化。
来源:https://www.cnblogs.com/51ascx/archive/2011/03/23/1992420.html