sessionStorage與localStorage對象使用注意

說明

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);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章