日期:2014-05-16  浏览次数:20621 次

html5了解

介绍几个HTML5的重要特性,能够帮助你提高整个web应用的使用体验和开发效率

?

特性一:正则表达式

?

相信大家都会非常喜欢这个特性,无须服务器端的检测,使用浏览器的本地功能就可以帮助你判断电子邮件的格式,URL,或者是电话格式,防止用户输入错误的信息,通过使用HTML5的pattern属性,我们可以很方便的整合这个功能,代码如下:

?

<input type="email" pattern="[^ @]*@[^ @]*" value="">

?

运行如下:

?

如果在Firefox浏览器中运行,并且输入错误的email地址,会看到如下:

?

特性二:数据列表元素

?

在没有HTML5的日子里,我们会选择使用一些JS或者知名的jQuery UI来实现自动补齐的功能,而在HTML5中,我们可以直接使用datalist元素,如下:

?

<form action="/server" method="post">
    <input list="jslib" name="jslib" >
    <datalist id="jslib">
        <option value="jQuery">
        <option value="Dojo">
        <option value="Prototype">
        <option value="Augular">
    </datalist>
    <input type="submit" value="完成" />
</form>

?

运行代码:

?

如果你输入字母“j",可以看到如下的自动补齐效果:

?

特性三:下载属性

?

HTML5的下载属性可以允许开发者强制下载一个页面,而非加载那个页面,这样的话,你不需要实现服务器端的一些功能来达到同样的效果,是不是非常贴心?

?

<a href="download_pdf.php" download="somefile.pdf">下载PDF文件</a> 

?

特性四:DNS的预先加载处理

?

要知道DNS的的解析成本很高滴,往往导致了网站加载速度慢。现在浏览器针对这个问题开发了更智能的处理方式,它将域名缓存后,当用户点击其它页面地址后自动的获取。

?

可以看到淘宝首页也利用了这个特性进行了优化:

?

?

?

?

如果你希望预先获取NDS,你可以控制你的浏览器来解析域名,例如:

?

<link rel="dns-prefetch" href="//www.gbtags.com">
<link rel="dns-prefetch" href="//www.gbin1.com">
<link rel="dns-prefetch" href="//m.gbin1.com">
<link rel="dns-prefetch" href="//s.gbin1.com">

?

特性五:链接网页的预先加载处理

?

要知道链接能够在也页面中帮助用户导航,但是页面加载的速度快慢决定了用户体验的好与坏,使用如下HTML5的prefetch属性可以帮助你针对指定的地址预加载页面或者页面中的特定资源,这样用户点击的时候,会发现页面加载速度提高了。

?

<link rel="prefetch" href="http://www.gbtags.com/gb/users.htm" />
<link rel="prefetch" href="http://www.gbtags.com/gb/networks/themes/img/logo_small.jpg" />

?

或者可以使用prerender属性,这个属性能够帮助你提前加载整个页面,如下:

?

<link rel="prerender" href="http://www.gbtags.com/gb/search.htm" />

?

通过设置这个属性,登录极客社区后,极客搜索页面已经加载了,这样如果你需要搜索,页面会立刻加载,相信你的用户肯定喜欢访问这样的网站!

?

?

============================html5 Web Storage======================================

?

html5中的Web Storage包括了两种存储方式:sessionStoragelocalStorage

sessionStorage用于本地存储一个会话(session)中(tenfy: 当然不同的浏览器如何判断两个页面是否属于同一session也是不同的)的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

?