sessionStorage 级及、localStorage 和 cookie 之間的區(qū)別
共同點(diǎn):都是保存在瀏覽器端,且同源的额衙。
區(qū)別:cookie數(shù)據(jù)始終在同源的http請(qǐng)求中攜帶(即使不需要)饮焦,即cookie在瀏覽器和服務(wù)器間來(lái)回傳遞;cookie數(shù)據(jù)還有路徑(path)的概念窍侧,可以限制cookie只屬于某個(gè)路徑下县踢。存儲(chǔ)大小限制也不同,cookie數(shù)據(jù)不能超過(guò)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過(guò)期時(shí)間之前一直有效桃煎,即使窗口或?yàn)g覽器關(guān)閉篮幢。
作用域不同,sessionStorage不在不同的瀏覽器窗口中共享为迈,即使是同一個(gè)頁(yè)面三椿;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的葫辐。Web?Storage 支持事件通知機(jī)制搜锰,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽(tīng)者。Web?Storage?的 api 接口使用更方便耿战。