方法浏览器
测试:服务器
sessionStorage.setItem("book", "Professional JavaScript"); const sessionLength = sessionStorage.length; for(let i=0;i<sessionLength;i++){ const key = sessionStorage.key(i); console.log(`${i}:${key}`); }
测试结果:session
实例化对象dom
globalStorage
定义:拥有特定访问限制的跨越会话存储数据
特色:
一、globalStorage不算是storage的实例化对象,globalStorage['baidu.com'](指定哪一个域名能够访问
该数据)才算是storage的实例化对象,才能使用storage对象中的全部方法测试
storage事件spa
EventUtil.addHandler(document, "storage", (event) => { const change = `Storage changed for ${event.domain}-${event.key}-${event.oldValue}-${event.newValue}`; console.log(change); })
监听事件的返回对象参数有:code
注意:这个事件对localStorage和sessionStorage都有用,可是没法判断是哪个对象
使用事例事件
function updateCounter(){ document.getElementById('count1').innerHTML = sessionStorage.pageLoadCount; document.getElementById('count2').innerHTML = localStorage.pageLoadCount; } function counter(){ if(localStorage.getItem('pageLoadCount') === null){ localStorage.setItem('pageLoadCount', 0); } if(sessionStorage.getItem('sessionCount') === null){ sessionStorage.setItem('pageLoadCount', 0); } localStorage.pageLoadCount = parseInt(localStorage.getItem('pageLoadCount')) + 1; sessionStorage.pageLoadCount = parseInt(localStorage.getItem('pageLoadCount')) + 1; updateCounter(); } counter();
能够看到每刷新一次页面,pageLoadCount都会加1,可是当关掉这个页面的时候,sessionStorage中的pageLoadCount会还原成1,localStorage中的pageLoadCount仍是原来的数图片