html5的两种存储方法是:1、application cache(应用缓存),web应用可以进行缓存,即使在没有网络的情况下也能使用;2、本地存储(localStorage或sessionStorage),可以在客户端存储数据。
本教程操作环境:windows7系统、HTML5版、Dell G3电脑。
1.Application Cache
HTML5引入应用缓存,意味着web应用可以进行缓存,即使在没有网络的情况下也能使用。
application cache有三个特点
- 离线浏览
- 已缓存的资源加载速度更快
- 减少服务器负载,浏览器将只从服务器下载更新过或更改过的资源
使用方法就是在 html标签中添加一个manifest属性
每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。
manifest 文件的建议的文件扩展名是:".appcache"。
<!DOCTYPE HTML> <html manifest="demo.appcache"> <body> The content of the document...... </body> </html>
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
manifest 文件可分为三个部分:
- CACHE MANIFEST – 在此标题下列出的文件将在首次下载后进行缓存
- NETWORK – 在此标题下列出的文件需要与服务器的连接,且不会被缓存
- FALLBACK – 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
一个完整的manifest文件
CACHE MANIFEST # 2012-02-21 v1.0.0 /theme.css /logo.gif /main.js NETWORK: login.asp FALLBACK: /html5/ /404.html
2.本地存储
HTML5 提供了两种在客户端存储数据的新方法:
- localStorage – 没有时间限制的数据存储
- sessionStorage – 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
localStorage和sessionStorage都具有相同的操作方法,例如setItem()、getItem()和removeItem()等
localStorage和sessionStorage的方法:
setItem存储value
用途:将value存储到key字段
用法:.setItem( key, value)
代码示例:
sessionStorage.setItem("key", "value"); localStorage.setItem("site", "js8.in");
getItem获取value
用途:获取指定key本地存储的值
用法:.getItem(key)
代码示例:
var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");
removeItem删除key
用途:删除指定key本地存储的值
用法:.removeItem(key)
代码示例:
sessionStorage.removeItem("key"); localStorage.removeItem("site");
clear清除所有的key/value
用途:清除所有的key/value
用法:.clear()
sessionStorage不是一种持久化存储,浏览器关闭之后会随之清除。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。