localStorage、sessionStorage用法总结:
1、cookie、seesion与localStorage、sessionStorage的对比:
--容量不同:cookie的存储量是有限制(4k);web存储的存储量更大,更安全,更易于使用;
--存储的持久性不同:web存储是通过浏览器来永久存储;
--存储方式不同:cookie是在服务器端;web存储在客户端;
2、web存储数据的类型分两种:
--localStorage:本地存储,没有时间限制的数据存储--(有独立的存储空间,不会数据混乱)。(持久化本地存储,除非主动删除数据,否则数据时永远不会过期的。但 如果找到浏览器的隐私或本地存储的数据删除也是一样可以删除的。)
--sessionStorage:回话存储,针对一个回话期的数据存储,关闭窗口就没了
3、浏览器及移动设备的支持、兼容性:
4、localStorage、sessionStorage其它注意:
-- 存储客户端临时信息的对象;
-- 只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现 -- 未测试);
-- localStorage 生命周期是永久,除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在;
-- sessionStorage 生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了;
-- 不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
-- 读取存储数据的时候,返回的是字符串,无论之前存的是什么,最后读取的都是字符串,所以读取的时候需要进行类型转换。
5、判断设备是否支持本地存储
if(window.localStorage){
alert('支持');
}else{
alert('不支持');
}
6、localStorage本身自带一些属性、方法:(sessionStorage与其属性、方法相同)
window.localStorage.length; // 返回目前已存储的变量数目
window.localStorage.key(n); // 获取第n个变量的键值(key)
window.localStorage.setItem(key, val); // 设置键值(key)的变量值(新增一个存储变量),(window.localStorage.key = val;)
window.localStorage.getItem(key); // 获取键值为key的变量的值(存储数据),(window.localStorage.key)
window.localStorage.removeItem(key); // 删除键值为key的存储变量
window.localStorage.clear(); // 清除所有的存储变量
7、兼容解决方法(ie8-):UserData
解决方案:
参考博文:
localStorage兼容方案实现 http://www.cnblogs.com/zjcn/archive/2012/07/03/2575026.html
HTML5 LocalStorage 本地存储 http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html
js本地存储解决方案(localStorage与userData) http://www.cnblogs.com/beiyuu/archive/2011/07/20/js-localstorage-userdata.html
本地存储—localStorage(HTML5) http://my.oschina.net/jgy/blog/99631