1.cookie:存儲(chǔ)在用戶本地終端上的數(shù)據(jù)济赎。有時(shí)也用cookies,指某些網(wǎng)站為了辨別用戶身份遗菠,進(jìn)行session跟蹤而存儲(chǔ)在本地終端上的數(shù)據(jù)联喘,通常經(jīng)過加密华蜒。一般應(yīng)用最典型的案列就是判斷注冊(cè)用戶是否已經(jīng)登過該網(wǎng)站辙纬。
2.HTML5 提供了兩種在客戶端存儲(chǔ)數(shù)據(jù)的新方法:
兩者都是僅在客戶端(即瀏覽器)中保存,不參與和服務(wù)器的通信叭喜;
localStorage - 沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ),第二天贺拣、第二周或下一年之后,數(shù)據(jù)依然可用捂蕴。
如何創(chuàng)建和訪問 localStorage:
<script type="text/javascript">
localStorage.lastname="Smith";document.write(localStorage.lastname);
</script>
sessionStorage - 針對(duì)一個(gè) session 的數(shù)據(jù)存儲(chǔ),當(dāng)用戶關(guān)閉瀏覽器窗口后譬涡,數(shù)據(jù)會(huì)被刪除。
創(chuàng)建并訪問一個(gè) sessionStorage:
<script type="text/javascript">
sessionStorage.lastname="Smith"; document.write(sessionStorage.lastname);
</script>
sessionStorage 啥辨、localStorage 和 cookie 之間的區(qū)別
共同點(diǎn):
都是保存在瀏覽器端涡匀,且同源的。
區(qū)別:
1.cookie數(shù)據(jù)始終在同源的http請(qǐng)求中攜帶(即使不需要)溉知,即cookie在瀏覽器和服務(wù)器間來回傳遞陨瘩;cookie數(shù)據(jù)還有路徑(path)的概念腕够,可以限制cookie只屬于某個(gè)路徑下。存儲(chǔ)大小限制也不同舌劳,cookie數(shù)據(jù)不能超過4k帚湘,同時(shí)因?yàn)槊看蝖ttp請(qǐng)求都會(huì)攜帶cookie,所以cookie只適合保存很小的數(shù)據(jù)甚淡,如會(huì)話標(biāo)識(shí)大诸。
而sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存贯卦。sessionStorage和localStorage 雖然也有存儲(chǔ)大小的限制资柔,但比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)閉妄辩。
2.作用域不同山上,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個(gè)頁面哮伟;localStorage 在所有同源窗口中都是共享的妄帘;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知機(jī)制鬼廓,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者致盟。Web Storage 的 api 接口使用更方便碎税。