首页 > 代码库 > localStorage和sessionStorage的区别
localStorage和sessionStorage的区别
//在chrome测试的结果;
知识点1:localStorage和sessionStorage的区别; localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。 sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。
localStorage的方法: localStorage.clear(); localStorage.getItem(); localStorage.key(); localStorage.setItem(); localStorage.removeItem(); sessionStorage的方法是在localStorage的方法上多了一个length; 注意 localStorage提供了事件;
if(window.addEventListener){ window.addEventListener("storage",handle_storage,false); }else if(window.attachEvent){ window.attachEvent("onstorage",handle_storage); }; function handle_storage(e){ e = e || window.e; console.log(e); };
/*注意: storage事件的触发似乎有点问题, 自身页面进行setItem后没有触发window的storage事件, 但是同时访问A.html和B.html, 在A页面中进行 setItem能触发B页面中window的storage事件, 同样的在B页面中进行setItem能触发A页面中window的storage事件. 在IE9中, 页面自身的设值能触发当前页面的storage事件,同样当前页面的设值能触发同一”起源”下其他页面window的storage事件,这看起来似乎更 让人想的通些. Read More : http://www.cnblogs.com/shihao/archive/2011/12/23/2298854.html */ //所以要触发当前页面的localStorage要用自定义事件,我们要自己封装一个;
var Storage = { setItem : function(k,v){ var se = document.createEvent("StorageEvent"); se.initStorageEvent(‘storage‘, false, false, k, localStorage.getItem(k), v, "", ""); window.dispatchEvent(se); localStorage.setItem(k,v); }, removeItem : function(k){ localStorage.removeItem(k); var se = document.createEvent("StorageEvent"); se.initStorageEvent(‘storage‘, false, false, k, localStorage.getItem(k), v, "", ""); window.dispatchEvent(se); } }; //使用自定义事件吧 window.addEventListener("storage",function(e){ console.log(e); },false);
//Read More : http://www.cnblogs.com/cczw/p/3196195.html
localStorage和sessionStorage的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。