Web Storag是HTML5引入的一個非常重要的功能,可以將數(shù)據(jù)存儲在本地,如保存用戶的偏好設(shè)置、復選框的選中狀態(tài)、文本框默認填寫的值等。用戶在瀏覽器中刷新網(wǎng)頁時,網(wǎng)頁通過Web Storage就可以知道用戶之前所做的一些修改,而不需要將用戶修改的內(nèi)容存儲在服務(wù)器端。
Web Storage類似于Cookie,但相比Cookie可以減少網(wǎng)絡(luò)流量,因為Web Storage存儲的數(shù)據(jù)不會發(fā)送給服務(wù)器,而Cookie存儲的數(shù)據(jù)會由瀏覽器通過HTTP請求自動發(fā)送給服務(wù)器。將數(shù)據(jù)存儲在WebStorage可以減少數(shù)據(jù)在瀏覽器和服務(wù)器間不必要地來回傳遞。
Web Storage中包含兩個關(guān)鍵的對象,分別是localStorage對象和sessionStorage對象,它們都是Web Storage的實例,所以都能使用Web Storage接口提供的方法和屬性。localStorage對象用于本地存儲,sessionStorage對象用于區(qū)域存儲。
Web Storage具有以下5個特點:
(1)數(shù)據(jù)的設(shè)置和讀取比較方便。
(2)容量較大,可以存儲大約5MB數(shù)據(jù)。
(3)只能存儲字符串,如果要存儲JSON對象,則可以使用JSON.stringify()和JSON.parseO方法分別進行序列化和反序列化。
(4)本地數(shù)據(jù)可以即時獲得。借助瀏覽器的緩存,整個頁面和數(shù)據(jù)都可以保存在本地,從本地讀數(shù)據(jù)比通過網(wǎng)絡(luò)從服務(wù)器獲得數(shù)據(jù)快得多,可以立即顯示網(wǎng)頁中緩存的內(nèi)容。
(5)數(shù)據(jù)可以臨時存儲。很多時候數(shù)據(jù)只需要在用戶瀏覽單個頁面期間使用,關(guān)閉頁面后數(shù)據(jù)就可以丟棄,這種情況使用sessionStorage非常方便。
目前,市面上主流的Web瀏覽器都在一定程度上支持HTML5的Web Storage,且iOS和Android兩大平臺對Web Storage都具有很好的支持。目前市面上的主流手機和平板計算機都依賴這兩個平臺,所以在實際開發(fā)中,基本不需要擔心移動設(shè)備的Web瀏覽器對Web Storage的支持情況。