localStorage - 沒有時間限制的數據存儲 sessionStorage - 針對一個 session 的數據存儲 共同點:sessionStorage、localStorage和cookie都由瀏覽器存儲在本地的數據。 區別: cookie數據始終在同源的http請求中攜帶(即使不需要) ...
localStorage - 沒有時間限制的數據存儲
sessionStorage - 針對一個 session 的數據存儲
共同點:sessionStorage、localStorage和cookie都由瀏覽器存儲在本地的數據。
區別:
- cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和伺服器間來回傳遞,localStorage和sessionStorage僅保存在客戶端,不與伺服器進行交互通信。
- cookie只在設置的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。localStorage:始終有效,視窗或瀏覽器關閉也一直保存,因此用作持久數據。sessionStorage 方法針對一個 session 進行數據存儲。當用戶關閉瀏覽器視窗後,數據會被刪除。
- 存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。localStorage 和sessionStorage,但比cookie大得多,可以達到5M或更大。
- localStorage支持事件通知機制,可以將數據更新的通知發送給監聽者。 api 介面使用更方便。而cookie的原生介面不友好,需要程式員自己封裝
- 作用域不同,sessionStorage不在不同的瀏覽器視窗中共用,即使是同一個頁面;localStorage 在所有同源視窗中都是共用的;cookie也是在所有同源視窗中都是共用的。Web Storage 支持事件通知機制,可以將數據更新的通知發送給監聽者。Web Storage 的 api 介面使用更方便。
- 應用場景:localStoragese:常用於長期登錄(+判斷用戶是否已登錄),適合長期保存在本地的數據。sessionStorage:敏感賬號一次性登錄;
localStorage提供了幾個方法:
1.存儲:localStorage.setItem(key,value)如果key存在時,更新value
2.獲取 localStorage.getItem(key)如果key不存在返回null
3.刪除 localStorage.removeItem(key)一旦刪除,key對應的數據將會全部刪除
4.全部清除 localStorage.clear() 使用removeItem逐個刪除太麻煩,可以使用clear,執行的後果是會清除所有localStorage對象保存的數據。