1. 程式人生 > >JS中 Cookie、 LocalStorage 與 SessionStorage

JS中 Cookie、 LocalStorage 與 SessionStorage

一、基本概念

1. Cookie

Cookie:主要用途有儲存登入資訊。cookie 確實非常小,它的大小限制為4KB左右。
用途:比如你登入某個網站市場可以看到“記住密碼”,這通常就是通過在 Cookie 中存入一段辨別使用者身份的資料來實現的。

2. LocalStorage

LocalStorage:HTML5 標準中新加入的技術,是瀏覽器端的本地快取。

3. SessionStorage

SessionStorage:與 localStorage 的介面類似,但儲存資料的生命週期與 localStorage 不同。它只是可以將一部分資料在當前會話中儲存下來,重新整理頁面資料依舊存在。但當頁面關閉後,sessionStorage 中的資料就會被清空。

二、區別

特性 Cookie LocalStorage SessionStorage
資料的生命期 一般由伺服器生成,可設定失效時間。如果在瀏覽器端生成Cookie,預設是關閉瀏覽器後失效 除非被清除,否則永久儲存 僅在當前會話下有效,關閉頁面或瀏覽器後被清除
存放資料大小 4K左右 一般為5MB
與伺服器端通訊 每次都會攜帶在HTTP頭中,如果使用cookie儲存過多資料會帶來效能問題 僅在客戶端(即瀏覽器)中儲存,不參與和伺服器的通訊
易用性 需要程式設計師自己封裝,源生的Cookie介面不友好 源生介面可以接受,亦可再次封裝來對Object和Array有更好的支援

三、LocalStorage 和 SessionStorage 的操作

LocalStorageSessionStorage 具有相同的操作方法,例如setItemgetItemremoveItem

1. 新增value

描述:使用 key/value 的形式將資料儲存進本地儲存中
格式

sessionStorage.setItem("key", "value");
localStorage.setItem("site", "js8.in");

2.獲取value

描述:獲取指定 key

本地儲存的值
格式

var value = sessionStorage.getItem("key");
var site = localStorage.getItem("site");

3.刪除value

描述:刪除指定 key 本地儲存的值
格式

sessionStorage.removeItem("key");
localStorage.removeItem("site");

4.清除value

描述:清除所有的 key/value
格式

sessionStorage.clear();
localStorage.clear();