|
歷史
在HTML5本地存儲(chǔ)之前,如果我們想在客戶端保存持久化數(shù)據(jù),有這么幾個(gè)選擇:
- HTTP cookie,HTTP cookie的缺點(diǎn)很明顯,最多只能存儲(chǔ)4KB的數(shù)據(jù),每個(gè)HTTP請(qǐng)求都會(huì)被傳送回服務(wù)器,明文傳輸(除非你使用SSL)。
- IE userData,userData是微軟在上世紀(jì)90年代的瀏覽器大戰(zhàn)時(shí)推出的本地存儲(chǔ)方案,借助DHTML的behaviour屬性來(lái)存儲(chǔ)本地?cái)?shù)據(jù),允許每個(gè)頁(yè)面最多存儲(chǔ)64K數(shù)據(jù),每個(gè)站點(diǎn)最多640K數(shù)據(jù),userData的缺點(diǎn)顯而易見,它不是web標(biāo)準(zhǔn)的一部分,除非你的程序只需要支持IE,否則它基本沒什么用處。
- Flash cookie,F(xiàn)lash cookie的名字有些誤導(dǎo),它實(shí)際上和HTTP cookie并不是一回事,或許它的名字應(yīng)該叫做Flash本地存儲(chǔ),F(xiàn)lash cookie默認(rèn)允許每個(gè)站點(diǎn)存儲(chǔ)不超過(guò)100K的數(shù)據(jù),如果超出了,F(xiàn)lash會(huì)自動(dòng)向用戶請(qǐng)求更大的存儲(chǔ)空間,借助Flash的ExternalInterface接口,你可以很輕松的通過(guò)Javascript操作Flash的本地存儲(chǔ),F(xiàn)lash的問(wèn)題很簡(jiǎn)單,就是因?yàn)樗荈lash。
- Google Gears,Gears是Google在07年發(fā)布的一個(gè)開源瀏覽器插件,旨在改進(jìn)各大瀏覽器的兼容性,Gears內(nèi)置了一個(gè)基于SQLite的嵌入式SQL數(shù)據(jù)庫(kù),并提供了統(tǒng)一API對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),在取得用戶授權(quán)之后,每個(gè)站點(diǎn)可以在SQL數(shù)據(jù)庫(kù)中存儲(chǔ)不限大小的數(shù)據(jù),Gears的問(wèn)題就是Google自己都已經(jīng)不用它了。
現(xiàn)狀
我們現(xiàn)在通常所說(shuō)的HTML5本地存儲(chǔ),一般指的是Web Storage規(guī)范,這個(gè)標(biāo)準(zhǔn)曾經(jīng)是HTML5規(guī)范的一部分,但后來(lái)因?yàn)榉N種原因從HTML5規(guī)范中分離了出來(lái),但是除了Web Storage,HTML5的本地存儲(chǔ)標(biāo)準(zhǔn)還有另外2個(gè)競(jìng)爭(zhēng)者:Web SQL Database和IndexedDB,下面就讓我們依次來(lái)看看這3個(gè)規(guī)范吧。
Web Storage
Web Storage是目前得到支持最廣泛的HTML5本地存儲(chǔ)規(guī)范:IE 8+,F(xiàn)F 3.5+,Safari 4+,Chrome 4+,Opera 10.5+,以及iPhone 2+和Android 2+都已經(jīng)支持Web Storage,要判斷你的瀏覽器是否支持Web Storage,可以使用下面這個(gè)函數(shù):
function supports_html5_storage() {try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
it知識(shí)庫(kù):HTML5本地存儲(chǔ)不完全指南,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。