相同點(diǎn):都存儲(chǔ)在客戶端
不同點(diǎn):
(1)存儲(chǔ)大小
· cookie數(shù)據(jù)大小不能超過(guò)4k。
· sessionStorage和localStorage 雖然也有存儲(chǔ)大小的限制条篷,但比cookie大得多误算,可以達(dá)到5M或更大。
(2)生命周期
· localStorage? ? 存儲(chǔ)持久數(shù)據(jù)妻率,瀏覽器關(guān)閉后數(shù)據(jù)不丟失除非主動(dòng)刪除數(shù)據(jù);
· sessionStorage? 數(shù)據(jù)在當(dāng)前瀏覽器窗口關(guān)閉后自動(dòng)刪除板祝。
· cookie? ? ? ? ? 設(shè)置的cookie過(guò)期時(shí)間之前一直有效宫静,即使窗口或?yàn)g覽器關(guān)閉.
(3)數(shù)據(jù)與服務(wù)器之間的交互方式
· cookie的數(shù)據(jù)會(huì)自動(dòng)的傳遞到服務(wù)器,服務(wù)器端也可以寫(xiě)cookie到客戶端
· sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器券时,僅在本地保存孤里。
獲取cookie的值
sessionStorage
sessionStorage的特點(diǎn)是,當(dāng)用戶打開(kāi)一個(gè)標(biāo)簽頁(yè)橘洞,實(shí)際上就是建立了一個(gè)session會(huì)話捌袜,在這個(gè)標(biāo)簽頁(yè)里,url發(fā)生跳轉(zhuǎn)炸枣,sessionStorage實(shí)際上還是保存著虏等,并不會(huì)消失弄唧,當(dāng)標(biāo)簽頁(yè)關(guān)閉的時(shí)候,數(shù)據(jù)才會(huì)消失霍衫。
sessionStorage 屬性允許你訪問(wèn)一個(gè) session Storage 對(duì)象候引。它與 localStorage 相似,不同之處在于 localStorage 里面存儲(chǔ)的數(shù)據(jù)沒(méi)有過(guò)期時(shí)間設(shè)置敦跌,而存儲(chǔ)在 sessionStorage 里面的數(shù)據(jù)在頁(yè)面會(huì)話結(jié)束時(shí)會(huì)被清除澄干。頁(yè)面會(huì)話在瀏覽器打開(kāi)期間一直保持,并且重新加載或恢復(fù)頁(yè)面仍會(huì)保持原來(lái)的頁(yè)面會(huì)話柠傍。
localStorage
localStorage的優(yōu)勢(shì)
1麸俘、localStorage拓展了cookie的4K限制
2、localStorage會(huì)可以將第一次請(qǐng)求的數(shù)據(jù)直接存儲(chǔ)到本地惧笛,這個(gè)相當(dāng)于一個(gè)5M大小的針對(duì)于前端頁(yè)面的數(shù)據(jù)庫(kù)疾掰,相比于cookie可以節(jié)約帶寬,但是這個(gè)卻是只有在高版本的瀏覽器中才支持的
localStorage的局限
1徐紧、瀏覽器的大小不統(tǒng)一静檬,并且在IE8以上的IE版本才支持localStorage這個(gè)屬性
2、目前所有的瀏覽器中都會(huì)把localStorage的值類(lèi)型限定為string類(lèi)型并级,這個(gè)在對(duì)我們?nèi)粘1容^常見(jiàn)的JSON對(duì)象類(lèi)型需要一些轉(zhuǎn)換
3拂檩、localStorage在瀏覽器的隱私模式下面是不可讀取的
4、localStorage本質(zhì)上是對(duì)字符串的讀取嘲碧,如果存儲(chǔ)內(nèi)容多的話會(huì)消耗內(nèi)存空間稻励,會(huì)導(dǎo)致頁(yè)面變卡