//在chrome測(cè)試的結(jié)果;
知識(shí)點(diǎn)1:localStorage和sessionStorage的區(qū)別; localStorage生命周期是永久宰译,這意味著除非用戶顯示在瀏覽器提供的UI上清除localStorage信息,否則這些信息將永遠(yuǎn)存在。 sessionStorage生命周期為當(dāng)前窗口或標(biāo)簽頁(yè)甩挫,一旦窗口或標(biāo)簽頁(yè)被永久關(guān)閉了,那么所有通過(guò)sessionStorage存儲(chǔ)的數(shù)據(jù)也就被清空了怕膛。
localStorage的方法:
? ? localStorage.clear();
? ? ? ? localStorage.getItem();
? ? ? ? localStorage.key();
? ? ? ? localStorage.setItem();
? ? ? ? localStorage.removeItem();
? ? sessionStorage的方法是在localStorage的方法上多了一個(gè)length;
? ? 注意 localStorage提供了事件;
知識(shí)點(diǎn)2:localStorage和sessionStorage一樣都是用來(lái)存儲(chǔ)客戶端臨時(shí)信息的對(duì)象庶溶。
他們均只能存儲(chǔ)字符串類型對(duì)象。
localStorage生命周期是永久的垒棋,這意味著除非用戶顯示在瀏覽器提供的UI上清楚localStorage信息卒煞,否則這些信息將永遠(yuǎn)存在。
sessionStorage生命周期為當(dāng)前窗口或標(biāo)簽頁(yè)叼架,一旦窗口或標(biāo)簽頁(yè)被永久關(guān)閉了畔裕,那么所有通過(guò)sessionStorage存儲(chǔ)的數(shù)據(jù)也就被清空了。
不同瀏覽器無(wú)法共享localStorage或sessionStorage中的信息乖订。相同瀏覽器的不同頁(yè)面間可以共享相同的localStorage(頁(yè)面屬于相同域名和端口)扮饶,但是 不同頁(yè)面或標(biāo)簽頁(yè)間無(wú)法共享sessionStorage的信息≌Ч梗【注】頁(yè)面及標(biāo)簽頁(yè)僅指頂級(jí)窗口甜无,如果一個(gè)標(biāo)簽頁(yè)包含多個(gè)iframe標(biāo)簽且他們屬于同源頁(yè)面,他們之間可以共享sessionStorage的
同源的判斷原則:http://www.test.com
https://www.test.com(不同源,因?yàn)閰f(xié)議不同)
http://my.test.com(不同源毫蚓,因?yàn)橹鳈C(jī)名不同)
http://www.test.com:8080(不同源占键,因?yàn)槎丝诓煌?/p>
localStorage和sessionStorage使用時(shí)使用相同的API:
localStorage.setItem("key","value");//以“key”為名稱存儲(chǔ)一個(gè)值“value”
localStorage.getItem("key");//獲取名稱為“key”的值
枚舉localStorage的方法:
for(var i=0;i
var name = localStorage.key(i)?;
var value = localStorage.getItem(name);?
}
刪除localStorage中存儲(chǔ)信息的方法:
localStorage.removeItem("key");//刪除名稱為“key”的信息。
localStorage.clear();?//清空l(shuí)ocalStorage中所有信息
通過(guò)getItem或直接使用localStorage["key"]獲取到的信息均為實(shí)際存儲(chǔ)的副本元潘。
例如:
localStorage.key = {value1:"value1"}?;
localStorage.key.value1='a'?;
這里是無(wú)法?對(duì)實(shí)際存儲(chǔ)的值產(chǎn)生作用的畔乙,下面的寫法也不可以:
?localStorage.getItem("key").value1="a";