HTML5之客戶端存儲(Storage)


  • 關於客戶端存儲技術
  • storage

 一、關於客戶端(瀏覽器)存儲技術

瀏覽器的存儲技術第一個能想到的應該就是cookie,關於cookie本身出現的初衷是為了解決客戶端識別,可存儲信息量小(4k左右),並且每次網絡請求都會被請求協議攜帶發送到服務器,這在一定程度上是比較浪費網絡資源,損耗性能。

在HTML5中提供了一個新的客戶端存儲技術Storage:

 

cookie與storage的異同:

相同點:同樣受同源策略影響,只有在域名一致的情況下才能查看到對應的數據。

不同點:

1.cookie的數據存儲量在4K左右,storage的存儲量大約在5MB左右;

2.navigator.cookieEnabled檢測是否啟用了cookie,也就說cookie可以認為控制是否啟用。storage則是自動啟用,不會被人為關閉。

3.coocie中不建議使用分號、逗號、空格等特殊字符;如果需要使用可以使用轉碼操作:

encodeURIComponent()//傳入特殊字符轉碼,可以應用轉碼作為簡單的加密處理
decodeURIComponent()//將轉碼的字符轉換為正常字符

storage中只能接收字符串類型的數據,具體操作見下一節。

4.cookie有時效性可以設置有效時間,如果不設置的話在瀏覽器窗口關閉時就會失效;storage是永久存儲。

5.cookie會與服務器通信;storage只存在客服端,不參與服務器通信。

關於cookie的網絡應用可以參考這篇博客:計算機網絡(HTTP)之客戶識別:cookie機制

 二、Storage的應用

  • localStorage:永久存儲,除非手動刪除
  • sessionStorage:臨時存儲,窗口關閉就會被清除

寫入與讀取localStorage數據:

1 // 寫入數據
2 localStorage.name = "duyi";
3 localStorage.obj = JSON.stringify({
4     name:'dengge'
5 })
6 // 讀取數據
7 var name =localStorage.name; 
8 var obj = JSON.parse(localStorage.obj);

寫入后可以在控制台的Application中查看得到數據:

 

localStorage與sessionStorage的寫入與讀取等操作方式一致,Storage的API及屬性(同時適應localStorage和sessionStorage):

Storage.length:數據量(返回一個整數,標識存儲在Storage對象中的數據項數量);

Storage.key(index):獲取鍵名(該方法接收一個數值,返回對應數據的鍵名);

Storage.getItem(item):獲取與鍵對應的值(該方法接收一個鍵名作為參數,返回鍵名對應的值);

Storage.setItem(item,val):添加Storage數據(該方法接受兩個參數,第一個參數為數據名稱,第二個為數據值);

Storage.removeItem(item):刪除指定的數據(該方法接收一個鍵名,並把該鍵名對應的數據從存儲中刪除);

Storage.clear():清除該域下的所有Storage緩存的數據。

 


免責聲明!

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



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