HTML5特性概览
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是HTML5
如何定义
狭义地讲,它是HTML4的升级版,但是它比HTML4增加了许多东西。以下关于HTML5的描述,摘自《HTML5设计原理》一文。
HTML5的“范围”
某些称呼常常被挂在嘴边:“HTML5技术”,“HTML5开发”,“某某产品HTML5版本”。
就像通讯协议2G,3G标准一样,HTML5技术内容来自各个浏览器厂商提供的成熟技术,其中一些已经被使用了多年(比如IE5,6里面的某些事实标准)。还有很多“HTML5技术”是各种存在已久工业标准往Web上面照搬(或者是子集),比如MathML(用于描述数学公式,以后做课件会很方便),HTML5内容之庞大不是几句话就可以说的清的,现在它还在不停地增长。
Javascript与HTML5的关系
JS是一门脚本语言,它可以作为某种特定软件环境的嵌入式开发语言,JS本身并不具备IO能力,所以JS本身不能进行网络通讯、界面绘制。但是,当JS嵌入到浏览器中的时候,浏览器提供了BOM和DOM两套API,前者负责与浏览器交互,后者则提供HTML&CSS排版引擎的接口给JS使用。HTML5标准增强了BOM和DOM两套API的能力,使得基于浏览器环境的开发变得更加“险恶”……更加多样化。
有人说HTML5就是Javascript,大致也没错,因为目前在浏览器端没有一种开发语言与JS竞争(IE支持VBScript,Chrome近期会支持Dart语言),所以浏览器端的程序开发一般就是指Javascript开发。
除了浏览器,JavaScript还有其它的宿主环境,比如NodeJs,NodeJs为JS提供了访问网络以及文件系统的能力,所以开发人员可以在这个环境中进行服务端的Web开发。
此外,浏览器本身也是一个可内嵌的组件,它也可以嵌入到其它程序环境中作应用层的开发,比如前网易游戏开发主管云风的博客中就曾透露,早期的西游系列网游就用了不少浏览器界面嵌入到游戏中,以降低开发成本(主要做游戏中交互菜单的部分)。当然,这种混合型的应用无处不在,我们日常生活中使用的大量桌面软件都是这种模式,比如腾讯QQ、360安全卫士等,QQ中的聊天窗口右侧部分、以及聊天记录窗口等都使用了浏览器组件。
这种形式的应用同样也存在于手机端。PhoneGap就是这样一种解决方案,它封装了手机端的底层数据、设备的访问能力给浏览器控件使用,好处是跨平台。
将浏览器插件嵌入到其它程序开发有一个好处,就是不用考虑浏览器内核,像windows 桌面,浏览器内核一般也就IE6和IE7两种(不随桌面IE版本升级)。而像Q+这种平台,则是强制使用webkit浏览器内核,这样开发者可以使用最新的HTML5特性。
以上重点要说的是,JS+HTML的开发,主要还是看宿主端能力的强弱,而传统的泛所有浏览器的通用应用开发,则必须照顾表现力最差的浏览器,开发和测试都会增加较大的成本。
HTML5浪潮带来的事情
在浏览器"军备竞赛"中,JavaScript的性能被提升了几十倍,得益于各种编译引擎的优化。HTML开发应用场景大量增加,一些小的硬件厂商不需要提供复杂的平台SDK,他们可以从webkit开源项目中获得很大的帮助。
HTML5 API
html5每一个“特性”都是一套API,无法用“是否支持某属性”这样臆断浏览器对HTML5的支持,因为还有许许多多的细节。
多媒体类
Canvas —— 2D绘图API
应用场景:游戏,地图,应用服务展示层
浏览器向来是文档型界面的天下(HTML),而绘图API的引入则把Web界面引入另外一个世界。Canvas是参考其它绘图引擎设计的一套API,只提供一些常用的绘图接口(当然,如后可能变成接口竞赛)。
开发者可以用Canvas做任何表现层可以做的事情:动画引擎、交互界面等等,你可以制作一款Canvas版的PhoneShop,或者制作一款游戏引擎,更别说使用Canvas来制作彩信、设计名片这种小菜一碟了。不过要开发游戏,你离不开音频处理,要开发一款图形处理软件,你还得依赖一些对数据处理的API,所以说要做成一件事情,光单独的HTML5的某项技术是不够的。
支持平台&浏览器:
PC平台:IE9.0+,以及其它主流浏览器;
移动平台:iOS、Android、WP7等,以及其它基于webkit开源项目的第三方浏览器;
各浏览器的Canvas API支持程度:略。
当然,各个浏览器的支持程度以及性能也是不一样的,它是一套API,而不是简单的几个能力接口,光讲Canvas的内容,已经可以出一本书了。
Video ——视频处理API
应用场景:视频播放,视频处理应用
视频播放,主要的工作还是把你的视频文件编码成用户浏览器支持的格式。因为视频编码本身涉及到很大的利益链(专利、授权),种种原因造成众多浏览器支持的视频编码格式不一致,所以你的服务器存储成本必须成倍增加(至少准备3种视频格式),也得准备大量的运算能力去编码这些视频。而至于前端的播放器设计,则只是用户体验上的设计罢了。当然,如果你以为
支持平台&浏览器:
PC平台:IE9.0+,以及其它主流浏览器
移动平台:iOS、Android、WP7等。
各浏览器支持视频编码:略。
各浏览器的API支持程度:略。
Audio ——音频播放API
应用场景:音乐播放器、游戏、乐器软件以及其它所有需要音效的地方
除了借助插件或者一些特定的浏览器接口,以前的网页是无法播放声音的,而今
一些浏览器支持的最新的Audio Data API则更加强大,它让发声不再依赖音频文件(或者数据流),开发人员只要在网页上写一串字符,就能让浏览器发出某种声音,就像可以用RGB数字表示颜色一样,你可以用一个数字表示一个44kHz频率的声响。所以,你开发一个网页版的弹吉他软件甚至不需要准备任何音频文件。
支持平台&浏览器:
PC平台:IE9.0+,以及其它主流浏览器。
移动平台:iOS、Android、WP7等。
各浏览器支持视频编码:略。
各浏览器的API支持程度:略。