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