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對象保存的數據。接口