、、、幾種web數(shù)據(jù)存儲(chǔ)方式對比總結(jié) 和
和 都是普遍用來跟蹤瀏覽用戶身份的會(huì)話方式。
和 區(qū)別
主要是服務(wù)端使用處理數(shù)據(jù),本文主要針對前端技術(shù)故不多贅述。
的使用
可通過.獲取全部 。它是一段字符串,是鍵值對的形式。操作起來有些麻煩瀏覽器兼容性問題面試,可引入封裝好的庫進(jìn)行使用,比如js-。API 也很簡潔:
Cookies.set("name", "value", { expires: 7 }); // 設(shè)置一個(gè)cookie,7天后失效
Cookies.get("name"); // => 'value'
Cookies.remove("name");
和
在 web 本地存儲(chǔ)場景上, 的使用受到種種限制,最關(guān)鍵的就是存儲(chǔ)容量太小和數(shù)據(jù)無法持久化存儲(chǔ)。
在 HTML 5 的標(biāo)準(zhǔn)下,出現(xiàn)了 和 供我們使用。
分類
生命周期
存儲(chǔ)容量
存儲(chǔ)位置
默認(rèn)保存在內(nèi)存中,隨瀏覽器關(guān)閉失效(如果設(shè)置過期時(shí)間,在到過期時(shí)間后失效)
4KB
保存在客戶端,每次請求時(shí)都會(huì)帶上
理論上永久有效的,除非主動(dòng)清除。
4.98MB(不同瀏覽器情況不同, 2.49M)
保存在客戶端,不與服務(wù)端交互。節(jié)省網(wǎng)絡(luò)流量
僅在當(dāng)前網(wǎng)頁會(huì)話下有效瀏覽器兼容性問題面試,關(guān)閉頁面或?yàn)g覽器后會(huì)被清除。
4.98MB(部分瀏覽器沒有限制)
同上
( 和 ) 本身就提供了比較好用的方法:
localStorage.setItem("name", "value");
localStorage.getItem("name"); // => 'value'
localStorage.removeItem("name");
localStorage.clear(); // 刪除所有數(shù)據(jù)
sessionStorage.setItem("name", "value");
sessionStorage.setItem("name");
sessionStorage.setItem("name");
sessionStorage.clear();
注意事項(xiàng):
瀏覽器兼容性
兼容性完全沒問題; 和 也支持 IE8+ 的瀏覽器,基本都可以正常使用。