說明
sessionStorage :HTML5新增的一個會話存儲對象,用於臨時保存同一窗口(或標籤頁)的數據,在關閉窗口或標籤頁之後將會刪除這些數據。
localStorage:主要是用來作爲本地存儲來使用的,解決了cookie存儲空間不足的問題(cookie中每條cookie的存儲空間爲4k),localStorage中一般瀏覽器支持的是5M大小,這個在不同的瀏覽器中localStorage會有所不同。
使用sessionStorage儲存的變量在不同標籤頁之間只能被傳遞,不能被共享(所以會話中不同頁面的通信推薦使用localStorage來完成)
【解釋】:1.若同時打開具有相同地址的瀏覽器頁面A與頁面B,頁面A所建立的變量並不能被頁面B所使用,反之亦然。(頁面刷新之後便可以使用另一個頁面所建立的數據)。
2.由頁面A跳轉與頁面A不相同地址頁面B(新標籤頁)再跳轉與頁面A地址相同的頁面C(新標籤頁),則頁面C可以使用頁面A所建立的數據。
sessionStorage 與localStorage的主要區別是;sessionStorage 在標籤頁關閉後便清除相關數據而localStorage是永久存儲
利用localStorage的屬性就可以實現一些特定的功能:自動關閉同一會話的多餘標籤頁
var Hi_mark;
var win_count=0;
setInterval(function(){
if(localStorage.getItem('s_count')===null){
localStorage.setItem('s_count',1);
Hi_mark=1;
win_count=win_count+1;
}else{
if(win_count<1){
Hi_mark=Number(localStorage.getItem('s_count'))+1;
localStorage.setItem('s_count',Number(localStorage.getItem('s_count'))+1);
}
if(Number(localStorage.getItem('s_count'))!==Hi_mark){
if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Chrome") !=-1) {
window.location.href="about:blank";
window.close();
} else {
window.opener = null;
window.open("", "_self");
window.close();
}
}
win_count=win_count+1;
console.log('You have open this page:'+Hi_mark+'_s_count:'+'times.');
}
},3000);