前面的話
Web存儲(chǔ)最初作為HTML5的一部分被定義成API形式,但是后來被剝離出來作為獨(dú)立的一份標(biāo)準(zhǔn)了。Web存儲(chǔ)標(biāo)準(zhǔn)所描述的API包含localStorage對(duì)象和sessionStorage對(duì)象,這兩個(gè)對(duì)象實(shí)際上是持久化關(guān)聯(lián)數(shù)組,是名值對(duì)的映射表,“名”和“值”都是字符串。Web存儲(chǔ)易于使用、支持大容量(但非無限量)數(shù)據(jù)存儲(chǔ)同時(shí)兼容當(dāng)前所有主流瀏覽器。本文將詳細(xì)介紹Web Storage
概述
Web Storage的目的是克服由cookie帶來的一些限制,當(dāng)數(shù)據(jù)需要被嚴(yán)格控制在客戶端上時(shí),無須持續(xù)地將數(shù)據(jù)發(fā)回服務(wù)器。Web Storage的兩個(gè)主要目標(biāo)是:提供一種在cookie之外存儲(chǔ)會(huì)話數(shù)據(jù)的途徑以及提供一種存儲(chǔ)大量可以跨會(huì)話存在的數(shù)據(jù)的機(jī)制
Web Storage分成兩類:sessionStorage和localStorage。sessionStorage保存的數(shù)據(jù)用于瀏覽器的一次會(huì)話,當(dāng)會(huì)話結(jié)束(通常是該窗口關(guān)閉),數(shù)據(jù)被清空;localStorage保存的數(shù)據(jù)長(zhǎng)期存在,下一次訪問該網(wǎng)站的時(shí)候,網(wǎng)頁可以直接讀取以前保存的數(shù)據(jù)。除了保存期限的長(zhǎng)短不同,這兩個(gè)對(duì)象的屬性和方法完全一樣
它們很像cookie機(jī)制的強(qiáng)化版,能夠動(dòng)用大得多的存儲(chǔ)空間。目前,每個(gè)域名的存儲(chǔ)上限視瀏覽器而定,Chrome是2.5MB,F(xiàn)irefox和Opera是5MB,IE是10MB。其中,F(xiàn)irefox的存儲(chǔ)空間由一級(jí)域名決定,而其他瀏覽器沒有這個(gè)限制。也就是說,在Firefox中,a.example.com和b.example.com共享5MB的存儲(chǔ)空間。另外,與Cookie一樣,它們也受同域限制。某個(gè)網(wǎng)頁存入的數(shù)據(jù),只有同域下的網(wǎng)頁才能讀取
通過檢查window對(duì)象是否包含sessionStorage和localStorage屬性,可以確定瀏覽器是否支持這兩個(gè)對(duì)象
[注意]IE瀏覽器不支持在本地使用storage