Web存儲(chǔ)API
簡介:
對(duì)于任何程序來說,能夠?qū)崿F(xiàn)數(shù)據(jù)存儲(chǔ)是必備功能之一姆涩,并且在需要的時(shí)候能夠提供數(shù)據(jù)呈队。但在過去的Web客戶端,沒有能夠支持?jǐn)?shù)據(jù)存儲(chǔ)的有效機(jī)制损谦,cookie曾用來在客戶端存儲(chǔ)少量信息,但受其性質(zhì)所限岳颇,cookie只能存儲(chǔ)一些短的字符串
在HTML5中提供了Web存儲(chǔ)API照捡,它是在cookie之上的增強(qiáng)。這個(gè)API允許我們?cè)谟脩舻挠脖P上存儲(chǔ)數(shù)據(jù)话侧,并在日后使用這些數(shù)據(jù)栗精。
-
API可以分成兩個(gè)部分:
-
信息必須且只在會(huì)話過程中使用—sessionStorage
當(dāng)瀏覽器窗口關(guān)閉時(shí),數(shù)據(jù)全部丟失
-
信息必須長期保存且由用戶決定時(shí)長—localStorage
關(guān)閉瀏覽器窗口時(shí)瞻鹏,數(shù)據(jù)繼續(xù)使用
數(shù)據(jù)只能由用戶刪除
-
查看sessionStorage术羔、localStorage的位置
sessionStorage
sessionStorage這部分API就像是會(huì)話cookie的替代。
cookie以及sessionStorage都是在特定的時(shí)間段內(nèi)保持?jǐn)?shù)據(jù)可用乙漓。但cookie使用瀏覽器作為引用级历,而sessionStorage使用單個(gè)窗口作為引用,這就意味著叭披,窗口關(guān)閉之后寥殖,sessionStorage就不能再使用玩讳。
方法
1)設(shè)置數(shù)據(jù)
setItem(key,value)
key - 作為存儲(chǔ)數(shù)據(jù)的唯一標(biāo)識(shí)
value - 存儲(chǔ)的數(shù)據(jù)內(nèi)容(number/string)
2) 根據(jù)標(biāo)識(shí)獲取數(shù)據(jù)
var value = getItem(key);
3) 刪除指定標(biāo)識(shí)的數(shù)據(jù)
removeItem(key);
4)將存儲(chǔ)系統(tǒng)的所有數(shù)據(jù)刪除
clear()
5)根據(jù)索引值返回key
var key = key(index);
-
屬性
返回當(dāng)前存儲(chǔ)系統(tǒng)的數(shù)據(jù)個(gè)數(shù)
.length
localStorage
提供的屬性和方法與sessionstorage一致
-
storage事件
實(shí)現(xiàn)多個(gè)窗口之間共享數(shù)據(jù)內(nèi)容
問題:
數(shù)據(jù)安全性低
目前除Safari瀏覽器支持該事件,其他瀏覽器不支持