cookie、localStorage、sessionStorage的區別

localStorage - 沒有時間限制的數據存儲程序員

sessionStorage - 針對一個 session 的數據存儲api

 

共同點: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提供了幾個方法:cookie

1.存儲:localStorage.setItem(key,value)若是key存在時,更新valuesession

2.獲取 localStorage.getItem(key)若是key不存在返回nullspa

3.刪除 localStorage.removeItem(key)一旦刪除,key對應的數據將會所有刪除對象

4.所有清除 localStorage.clear() 使用removeItem逐個刪除太麻煩,可使用clear,執行的後果是會清除全部localStorage對象保存的數據。接口

相關文章
相關標籤/搜索