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