方法瀏覽器
測試:服務器
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仍是原來的數圖片