瀏覽器端存儲數據的用途很廣泛,比如在保存用戶信息、存儲個性化設置信息、保存某種狀態或是資料等方面都會用到。
其中方法主要有三種:cookie、sessionStorage、localStorage。下面主要討論一下我在學習過程中發現這三者的區別。
1.是否與服務器端交互:
cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞;
而sessionStorage和localStorage不會自動把數據發給服務器,僅在本地保存。
2.存儲大小限制:
cookie存儲的數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,比如會話標識;
sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
3.數據有效期不同:
sessionStorage僅在當前瀏覽器窗口關閉或刷新前有效,需要持久保存的數據自然也就不可能使用sessionStorage;
localStorage保存數據始終有效,窗口或瀏覽器關閉也一直保存,因此可用作持久保存數據;
cookie只在開發人員設置的有效期時間之前一直有效,即使窗口或瀏覽器關閉。
4.作用域不同:
sessionStorage在不同的瀏覽器窗口中不能共享,即使是同源頁面;
localStorage 在所有瀏覽器的同源窗口中都是共享的;
cookie也是在所有同源窗口中都是共享的。