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

瀏覽器中查看localStorage
常用API:
- 設(shè)置:
localStorage.setItem(key,value) - 獲取:
localStorage.getItem(key) - 刪除:
localStorage.removeItem(key) - 獲取第n個(gè)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
過期:在頁面會(huì)話結(jié)束時(shí)被清除。頁面會(huì)話在瀏覽器打開期間一直保持,并且重新加載或恢復(fù)頁面仍會(huì)保持原來的頁面會(huì)話。在新標(biāo)簽或窗口打開一個(gè)頁面會(huì)初始化一個(gè)新的會(huì)話,關(guān)閉瀏覽器會(huì)結(jié)束會(huì)話。
大小:根據(jù)瀏覽器不同而不同,一般是2.5MB或5MB
常用API:與localStorage相似
注意事項(xiàng)
- 無論是
localStorage還是sessionStorage中保存的數(shù)據(jù)都僅限于該頁面的協(xié)議,即都遵循同源策略(協(xié)議,主機(jī)名,端口)。 - 只能存儲(chǔ)字符串。其他比如數(shù)組,json數(shù)據(jù),圖片等需要被序列化成字符串后再存儲(chǔ)。
- 注意判斷瀏覽器是否支持。
- 避免把敏感的信息存儲(chǔ)到本地。
- 注意key的唯一性,重復(fù)對(duì)一個(gè)key賦值會(huì)覆蓋原來的。
- 子域名之間不能共享存儲(chǔ)數(shù)據(jù)。
- 存入數(shù)據(jù)的時(shí)候需要異常處理(
try catch),避免超出容量報(bào)錯(cuò)。超出容量大小后可以使用一些如LRU,F(xiàn)IFO的算法淘汰一些數(shù)據(jù)。 - 兩者都不會(huì)被發(fā)送到服務(wù)器端。
使用場(chǎng)景
- 使用本地?cái)?shù)據(jù),減少網(wǎng)絡(luò)傳輸。
- 弱網(wǎng)絡(luò)環(huán)境下,高延遲,低帶寬,盡量把數(shù)據(jù)本地化。