本地存儲常用方式 localStorage, sessionStorage,cookie 的區別 和 服務器存儲session


本地存儲:把一些信息存儲到客戶端本地(主要目的有很多,其中有一個就是實現多頁面之間的信息共享)
 
    1. 離線緩存(xxx.manifest)  H5處理離線緩存還是存在一些硬傷的,所以真實項目中一般還是傳統的NATIVE APP來完成這件事情
    2. localStorage / sessionStorage:H5中新增加的API,基於這個API可以把一些數據緩存到客戶端本地 (常用)
    3. IndexedDB / webSQL :本地數據庫存儲
    4. Cookie:本地信息存儲(常用)
    5. CacheStorage / ApplicationCache:本地緩存存儲

 

 
用到本地存儲的地方:
   [頁面之間信息的通信]
       A存儲信息,B頁面中可以獲取
       1. 登錄
       2. 記住用戶名密碼(或者自動登錄)
       3. 購物車
       4. 跳轉到其它頁面,返回上級頁面的時候停留在之前最后一次
 
我們來看看本地存儲cookie和服務端session的具體做法及使用場景

 

 

 

[做一些性能優化]
       把一些不經常改變的數據,在第一次從服務器端獲取到之后,存儲到客戶端本地(記錄一個存儲時間),假設我們設置有效存儲期是10分鍾,那么10分鍾以內,我們再刷新頁面,就不用再向服務器發送請求了,直接從本地數據中獲取展示即可;超過10分鍾,從新向服務器發送請求,請求回來最新數據參考第一次,也一樣存儲到本地中...
       1. 可減輕服務器壓力
       2. 對於不經常更新的數據我們可以把存儲周期設置的長一些,有助於頁面第二次加載的時候,渲染的速度(移動端經常做這些事情)
 
localStorage VS cookie
      [cookie]
         1.兼容所有的瀏覽器
         2.有存儲的大小限制,一般一個源(一個域下)只能存儲4KB內容
         3.cookie有過期時間(當然我們自己可以手動設置這個時間)
         4.殺毒軟件或者瀏覽器的垃圾清理都可能會把cookie信息強制清除掉
         5.在隱私或者無痕瀏覽模式下,是不記錄cookie的
         6.cookie不是嚴格的本地存儲,因為要和服務器之間來回傳輸

      [localStorage]
         1.不兼容IE8及以下
         2.也有存儲的大小限制,一個源下最多只能存儲5MB左右
         3.本地永久存儲,只要你不手動刪除,永遠存儲在本地(但是我們可以基於API  removeItem/clear手動清除一些自己想要刪除的信息)
         4.殺毒軟件或者瀏覽器的垃圾清理暫時不會清除localStorage(新版本谷歌瀏覽器會清除localStorage等信息)
         5.在隱私或者無痕瀏覽模式下,是記錄localStorage的
         6.localStorage和服務器沒有半毛錢關系
  
      真實項目中使用本地存儲來完成一些需求的情況不是很多,一般都是基於服務器的session或者數據庫存儲完成的(服務器的session和本地的cookie是有關聯的),如果不考慮兼容,就想基於本地存儲來完成一些事情,那么一般都是用localStorage的(尤其是移動端開發)

      localStorage.setItem([key],[value]):[value]必須是字符串格式的(即使寫的不是字符串,也會默認轉換為字符串)
      localStorage.getItem([key]):通過屬性名獲取存儲的信息
      localStorage.removeItem([key]):刪除指定的存儲信息
      localStorage.clear():清除當前域下存儲的所有信息
      localStorage.key(0):基於索引獲取指定的KEY名

      document.cookie='';//=>設置cookie


免責聲明!

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



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