localStorage和sessionStorage總結(jié)以及區(qū)別
兼容的手機(jī)和瀏覽器:
使用
.setItem( key, value)存鍵值數(shù)據(jù)
sessionStorage.setItem("key","value");
localStorage.setItem("key","value");
.getItem(key)根據(jù)key獲取value
var value=sessionStorage.getItem("key");
var value=localStorage.getItem("key");
.removeItem(key)刪除指定鍵值
sessionStorage.removeItem("key");
localStorage.removeItem("key");
.clear()--清空所有
sessionStorage.clear();
localStorage.clear();
cookie和localStorage和sessionStorage的區(qū)別
區(qū)別:
cookie數(shù)據(jù)始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務(wù)器間來回傳遞。
而 sessionStorage 和 localStorage 不會自動把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。cookie數(shù)據(jù)還有路徑(path)的概念,可以限制 cookie 只屬于某個(gè)路徑下。存儲大小限制也不同,cookie數(shù)據(jù)不能超過4k,同時(shí)因?yàn)槊看?http 請求都會攜帶 cookie,所以 cookie 只適合保存很小的數(shù)據(jù),如會話標(biāo)識。
sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達(dá)到5M或更大。數(shù)據(jù)有效期不同,
sessionStorage:僅在當(dāng)前瀏覽器窗口關(guān)閉前有效,自然也就不可能持久保持;
localStorage:始終有效,窗口或?yàn)g覽器關(guān)閉也一直保存,因此用作持久數(shù)據(jù);
cookie 只在設(shè)置的cookie過期時(shí)間之前一直有效,即使窗口或?yàn)g覽器關(guān)閉。作用域不同,sessionStorage 不在不同的瀏覽器窗口中共享,即使是同一個(gè)頁面;
localStorage 在所有同源窗口中都是共享的;
cookie 也是在所有同源窗口中都是共享的。Web Storage 支持事件通知機(jī)制,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者。Web Storage 的 api 接口使用更方便。