輕松實現localStorage本地存儲


相信大家都知道HTML5提供了localStorage和sessionStorage兩個新功能,基於這兩個功能我們可以實現web資源的離線和會話存儲,如果你現在還在用Cookie來臨時存儲網絡資源的話,那就太out了,有這么好的東西放着干嗎不用呢?

下面我將通過一個簡單的例子來闡述localStorage的用法,實現起來還是相對容易的。例如現在大部分網站都有記錄訪客第一次訪問的信息,如果是第一次訪問瀏覽器在界面上就會彈出一個廣告框之類的彈框,之后再訪問網站就看不到彈框了,這一效果其實就是用localStorage(之前用Cookie)實現的。

那么現在我們以bootstrap的模態框為例,當用戶第一次進入網站的時候彈出模態框,之后就不再彈出,除非用戶清除了瀏覽器的緩存數據。我們的html代碼如下:

 1 <div class="modal hide fade" id="demo" data-show="true" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 2     <div class="modal-dialog">
 3             <div class="modal-content">
 4                 <div class="modal-header">
 5                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
 6                     <h1 class="modal-title text-center step-show1" id="startModalLabel"><span>彈框demo</span></h1>    
 7                 </div>
 8                 <div class="modal-body">
 9                     彈框內容
10                 </div>
11            </div>
12        </div>
13 </div>                                    

好了,我們已經輕松搭建好了一個漂亮的彈窗,默認是隱藏的,現在我們所要做的就是在訪客第一次訪問的時候顯示這個彈窗,接下來我們就來編寫JS代碼:

首先我們來記錄訪客第一次訪問的信息,如果是第一次訪問我們就賦予一個變量值為"1",當訪客再次訪問的時候瀏覽器就會去尋找這個變量的值,如果為1則進行某操作,如果不為1則進行另一操作,代碼如下:

 1 //本地存儲訪客是否第一次訪問
 2 var strModel="value";     //定義存儲對象的屬性名
 3 var storeDisplay=function(){
 4     var modelDisplay=1;      //定義存儲對象的屬性值
 5     //存儲,IE6~IE7 cookie 其他瀏覽器HTML5本地存儲
 6     if(window.localStorage) {
 7         localStorage.setItem(strModel,modelDisplay);  //進行本地存儲
 8     }
 9     else {
10         Cookie.write(strModel,modelDisplay);   //進行Cookie存儲
11     }
12 };

ok,我們的存儲代碼已經寫好了,接下來我們就要來觸發它了,調用上述storeDisplay()函數即可,同時因為有些低版本瀏覽器還不支持localStorage,所以觸發之前還要判斷下瀏覽器是否支持localStorage,不支持則使用Cookie存儲,實現全兼容。代碼如下:

 1 //檢測觸發是否顯示彈窗
 2 var strStoreDate=window.localStorage ? localStorage.getItem(strModel) : Cookie.read(strModel);      //檢測瀏覽器是否支持localStorage
 3  
 4 if(strStoreDate!="1"){    //如果屬性值不為1則顯示彈框
 5      $('#demo').removeClass("hide");
 6      $('#demo').modal({
 7              show:true  //顯示彈框
 8      });
 9 }
10 
11 storeDisplay();  //存儲信息,將存儲屬性設置為"1"

這樣一來當訪客第一次訪問的時候strStoreDate的值其實為'undefinded',不等於'1',所以就會執行if里面的語句顯示彈框,然后再將存儲屬性設置為'1',而當訪客第二次訪問時屬性值已經為'1'了就不會執行if里面的語句,彈框還是默認隱藏狀態,ok,完成。

通過上述例子我們利用localStorage輕松地實現了一個記錄訪客是否第一次訪問的功能,利用

  localStorage.setItem(strModel,modelDisplay)

  以及

  localStorage.getItem(strModel)

  來設置和獲取屬性值是最重要的步驟,

同樣的,如果我們需要使用sessionStorage來存儲訪客在當前會話中的信息只需將localStorage替換為sessionStorage即可,這樣我們刷新網頁的時候信息就不會丟失了。

怎么樣,是不是很強大?還沒用的童鞋趕緊試試吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM