HTML5 Web Storage

localStorage

過期:永久存儲,永不失效,除非手動刪除
大?。?/strong>每個來源5MB(大多數(shù)瀏覽器)

瀏覽器中查看localStorage

常用API:

  • 設(shè)置:localStorage.setItem(key,value)
  • 獲?。?code>localStorage.getItem(key)
  • 刪除:localStorage.removeItem(key)
  • 獲取第n個key值:localStorage.key(n),n從0開始
localStorage.key(0); //  "jfVersion"
localStorage.key(1); //  "login-service"
  • 清除當(dāng)前域名下全部數(shù)據(jù):localStorage.clear()
  • 獲取數(shù)據(jù)數(shù)量: localStorage.length
  • 獲取所有數(shù)據(jù):localStorage.valueOf()

sessionStorage

過期:在頁面會話結(jié)束時被清除。頁面會話在瀏覽器打開期間一直保持,并且重新加載或恢復(fù)頁面仍會保持原來的頁面會話。在新標(biāo)簽或窗口打開一個頁面會初始化一個新的會話,關(guān)閉瀏覽器會結(jié)束會話。
大?。?/strong>根據(jù)瀏覽器不同而不同,一般是2.5MB或5MB
常用API:localStorage相似

注意事項

  1. 無論是 localStorage 還是 sessionStorage 中保存的數(shù)據(jù)都僅限于該頁面的協(xié)議,即都遵循同源策略(協(xié)議,主機名,端口)。
  2. 只能存儲字符串。其他比如數(shù)組,json數(shù)據(jù),圖片等需要被序列化成字符串后再存儲。
  3. 注意判斷瀏覽器是否支持。
  4. 避免把敏感的信息存儲到本地。
  5. 注意key的唯一性,重復(fù)對一個key賦值會覆蓋原來的。
  6. 子域名之間不能共享存儲數(shù)據(jù)。
  7. 存入數(shù)據(jù)的時候需要異常處理(try catch),避免超出容量報錯。超出容量大小后可以使用一些如LRU,F(xiàn)IFO的算法淘汰一些數(shù)據(jù)。
  8. 兩者都不會被發(fā)送到服務(wù)器端。

使用場景

  1. 使用本地數(shù)據(jù),減少網(wǎng)絡(luò)傳輸。
  2. 弱網(wǎng)絡(luò)環(huán)境下,高延遲,低帶寬,盡量把數(shù)據(jù)本地化。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容