HTML5 提供了两种在客户端存储数据的新方法:
- localStorage - 没有时间限制的数据存储
- sessionStorage - 针对一个 session 的数据存储
浏览器支持情况:
浏览器的支持除了IE7及以下不支持外,其他标准浏览器都完全支持(ie及FF需在web服务器里运行),值得一提的是IE总是办好事,例如IE7、IE6中的UserData其实就是javascript本地存储的解决方案。通过简单的代码封装可以统一到所有的浏览器都支持web storage。
要判断浏览器是否支持localStorage可以使用下面的代码:
1 if(window.localStorage) { alert("浏览支持localStorage")} 2 3 else { alert("浏览暂不支持localStorage")} 4 5 //或者 6 7 if(typeof window.localStorage == 'undefined') { alert("浏览暂不支持localStorage")}
localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等
用法:.setItem( key, value)
代码示例:
1 sessionStorage.setItem("key", "value"); 2 localStorage.setItem("site", "js8.in");
getItem获取value用途:获取指定key本地存储的值
用法:.getItem(key)
代码示例:
1 var value = sessionStorage.getItem("key"); var site = localStorage.getItem("site");
removeItem删除key用途:删除指定key本地存储的值
用法:.removeItem(key)
代码示例:
1 sessionStorage.removeItem("key"); localStorage.removeItem("site");
clear清除所有的key/value用途:清除所有的key/value
用法:.clear()
代码示例:
1 sessionStorage.clear(); localStorage.clear();
使用实例:
1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2 <input type='button' onclick='set_item()' value='存值' /> 3 <input type='button' onclick='get_item()' value='取值' /> 4 <input type='button' onclick='delete_item()' value='删除' /> 5 <script> 6 //localStorage 存值永久有效 7 function set_item(){ 8 var user = {}; 9 user.name = 'Adam Li'; 10 user.age = 25; 11 user.home = 'China'; 12 localStorage.setItem('userinfo',JSON.stringify(user)); 13 } 14 //localStorage取值 15 function get_item(){ 16 var data = JSON.parse(localStorage.getItem('userinfo')); 17 alert("name:"+data.name+" age:"+data.age+" home:"+data.home); 18 } 19 //localStorage删除指定键对应的值 20 function delete_item(){ 21 localStorage.removeItem('userinfo'); 22 alert(localStorage.getItem('userinfo')); 23 } 24 </script>
sessionStorage使用方法请参照localStorage使用例子,实际应用要用哪个关键看你需求了,如果是要永久保存的,那么就请使用localStorage方法存取值,如果是要浏览关闭会话结束就清除缓存的,当然就得选择sessionStorage方法了
注意:有幸在移动端使用html5的存储技术,在iOS系统下发现一个问题ing