主要為了考察對于前端內(nèi)容存儲的一些問題,三者的明顯區(qū)別,三者應(yīng)該用在什么地方和媳,什么情況應(yīng)該用那種主到,可從這些方面進(jìn)行回答慰技;
(sessionStorage 、localStorage 和 cookie 之間的區(qū)別
共同點(diǎn):都是保存在瀏覽器端贵少,且同源的。
區(qū)別:cookie數(shù)據(jù)始終在同源的http請求中攜帶(即使不需要)堆缘,即cookie在瀏覽器和服務(wù)器間來回傳遞滔灶。
而sessionStorage和localStorage不會自動把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存吼肥。cookie數(shù)據(jù)還有路徑(path)的概念录平,可以限制cookie只屬于某個路徑下。
存儲大小限制也不同缀皱,
cookie數(shù)據(jù)不能超過4k萄涯,同時(shí)因?yàn)槊看蝖ttp請求都會攜帶cookie,所以cookie只適合保存很小的數(shù)據(jù)唆鸡,如會話標(biāo)識。
sessionStorage和localStorage 雖然也有存儲大小的限制枣察,但比cookie大得多争占,可以達(dá)到5M或更大。
cookie只在設(shè)置的cookie過期時(shí)間之前一直有效序目,即使窗口或?yàn)g覽器關(guān)閉臂痕。
作用域不同,sessionStorage不在不同的瀏覽器窗口中共享猿涨,即使是同一個頁面握童;
localStorage 在所有同源窗口中都是共享的;
cookie也是在所有同源窗口中都是共享的叛赚。
使用HTML5 Web存儲的localStorage和sessionStorage方式進(jìn)行Web頁面數(shù)據(jù)本地存儲澡绩。
頁面參考如下圖,能將頁面上的數(shù)據(jù)進(jìn)行本地存儲俺附。并能讀取存儲的數(shù)據(jù)顯示在頁面上肥卡。
localStorage(本地存儲),可以長期存儲數(shù)據(jù),沒有時(shí)間限制事镣,一天步鉴,一年,兩年甚至更長璃哟,數(shù)據(jù)都可以使用氛琢。
sessionStorage(會話存儲),只有在瀏覽器被關(guān)閉之前使用随闪,創(chuàng)建另一個頁面時(shí)同意可以使用阳似,關(guān)閉瀏覽器之后數(shù)據(jù)就會消失。)