前些天看了IT最新动向,发现HTML5发展非常之快,所以这两天花了些时间学了一下,在网上查到的东西一般都很琐碎,我在这里稍微整理一下。
起步
首先,先了解一下HTML5的发展起步。
HTML5是W3C和WHATWG合作的结果。
注: W3C 指 World Wide Web Consortium,万维网联盟。
WHATWG 指 Web Hypertext Application Technology Working Group。网络超文本应用技术工作组
他们对HTML5建立了一些规则:
l 新特性应该基于HTML、CSS、DOM以及JavaScript
l 减少对外部插件的需求(比如Flash)
l 更优秀的错误处理
l 更多取代脚本的标记
l HTML5应该独立于设备
l 开发进程应该对公众透明
HTML5中一些有趣的新特性:
l 用于绘画的canvas元素
l 用于媒介回放的video和audio元素
l 对本地离线存储的更好的支持
l 新的特殊内容元素,比如article、footer、header、nav、section
l 新的表单控件,比如:calendar、date、time、email、url、search
最新版本的Safari、Chrome(谷歌浏览器)、Firefox以及Opera支持某些HTML5特性,IE9将支持某些特性。
Web视频
现如今,大多数的视频都是插件(比如Flash)来显示的,但是并非所有的浏览器都拥有同样的插件。HTML5规定了一种通过video元素来包含视频的标准方法(不需要插件的哦!!!强大吧)
当前,video元素支持三种视频格式:Ogg、MPEG4、WebM
在HTML5中显示视频,您所需的只是这样写:
<video src="movie.ogg" controls="controls">
您的浏览器不支持该功能!
</video>
<video> 与 </video> 之间插入的内容是供不支持 video 元素的浏览器显示的。
video 元素允许多个 source 元素。source 元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式:
<video width="320" height="240" controls="controls">
<source src="movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
您的浏览器不支持该功能!
</video>
<video>标签的属性
Web音频
和视频一样,大多数音频都需要插件(比如Flash)才能播放,HTML5规定了一种通过audio元素来包含音频的标准方法。Audio元素能够播放声音文件或者音频流。
Audio元素支持三种音频格式:Ogg Vorbis、MP3、Wav
使用方法和video标签的方法一摸一样,超像的!
<audion>标签的属性
Canvas(在网页上绘制图形)
HTML5的canvas元素使用Javascript在网页上绘制图形。
画布是一个矩形区域,您可以控制其每一像素
Canvas拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
向HTML5中添加canvas元素,方法如下:
<canvas id="myCanvas" width="200" height="100"></canvas>
另外需要声明的是canvas元素本身没有绘图能力,所有的绘制工作必须在JavaScript内部完成。
现在绘制一个红色的矩形,如下:
<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>
现在对这段代码进行解析:
JavaScript使用id寻找canvas元素
var c=document.getElementById("myCanvas");
然后,创建context对象
var cxt=c.getContext("2d");
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
下面的两行代码绘制一个红色的矩形:
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。
想看更多例子,请上W3School的HTML5课程!
在客户端存储数据
HTML5的这个功能是让我感到最不可思议的,HTML5提供了两种在客户端存储数据的新方法
l localStorage - 没有时间限制的数据存储
l sessionStorage - 针对一个 session 的数据存储
之前,这些存储工作都是由cookie完成的,现在cookie看来要换人了,cookie不适合存储大量的数据,因为它们由每个对服务器的请求来传递,这使得cookie的速度慢而且效率低。
在H5中数据不是由每个服务器请求传递的,而是只有在请求时使用数据,他使在不影响网站性能的情况下,存储大量数据成为可能。
对于不同的网站,数据存储在不同的区域,而且一个网站只能访问其自身的数据。
H5使用JavaScript存储和访问数据。发现了没,H5的很多功能都需要利用JS来实现,呵呵,看来还是离不了Java
现在,首先介绍第一种存储方式,localStorage
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
创建和访问localStorage
<script type="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
</script>
这样就OK了,是不是很简单哈!
第二个,sessionStorage
sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。创建和访问sessionStorage的方法和localStorage的差不多一样,只是名称不一样,效果不一样而已。
<script type="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
</script>