更新時(shí)間:2022-08-08 來源:黑馬程序員 瀏覽量:
隨著互聯(lián)網(wǎng)的快速發(fā)展,基于網(wǎng)頁的應(yīng)用越來越普遍,同時(shí)也變得越來越復(fù)雜。為了滿足各種各樣的需求,會(huì)經(jīng)常在本地設(shè)備上存儲(chǔ)大量的數(shù)據(jù)。例如,記錄歷史活動(dòng)信息。傳統(tǒng)的方式是使用document.cookie來進(jìn)行存儲(chǔ),但是由于其存儲(chǔ)空間有限(大約4KB),并且需要復(fù)雜的操作來解析,給開發(fā)者帶來了諸多不便。為此,HTML5規(guī)范提出了網(wǎng)絡(luò)存儲(chǔ)相關(guān)的解決方案,即Web Storage(Web存儲(chǔ))和本地?cái)?shù)據(jù)庫Web SQL Database。
Web Storage API中包含了兩個(gè)關(guān)鍵的對(duì)象,分別是window.sessionStorage對(duì)象和window.localStorage對(duì)象。前者用于區(qū)域存儲(chǔ),后者用于本地存儲(chǔ)。
Web Storage具有以下特點(diǎn)。
(1)數(shù)據(jù)的設(shè)置和讀取比較方便。
(2)容量較大,sessionStorage大約5MB,localStorage大約為20MB。
(3)只能存儲(chǔ)字符串,若想要存儲(chǔ)JSON對(duì)象,則可以使用window.JSON.stringify()或者parse()進(jìn)行序列化和反序列化編碼。
Web Storage除了在移動(dòng)平臺(tái)上具有良好的兼容性外,它還具有以下優(yōu)勢(shì)。
(1)減少網(wǎng)絡(luò)流量的使用。
使用Web Storage,一旦數(shù)據(jù)保存在本地后,就可以避免再次向服務(wù)器請(qǐng)求數(shù)據(jù)。因此減少了不必要的數(shù)據(jù)請(qǐng)求,同時(shí)也減少了數(shù)據(jù)在瀏覽器和服務(wù)器間不必要的來回傳遞。
(2)能夠快速顯示數(shù)據(jù)。
使用Web Storage性能好,因?yàn)閺谋镜刈x數(shù)據(jù)比通過網(wǎng)絡(luò)從服務(wù)器獲得數(shù)據(jù)速度要快很多,可以即時(shí)獲得本地?cái)?shù)據(jù)。另外,網(wǎng)頁本身也有緩存,因此如果整個(gè)頁面和數(shù)據(jù)都在本地,則可以立即顯示。
(3)可以臨時(shí)存儲(chǔ)數(shù)據(jù)。
在很多時(shí)候,數(shù)據(jù)只需要在用戶瀏覽一組頁面期間使用,而關(guān)閉窗口后數(shù)據(jù)就可以丟棄。這種情況使用sessionStorage非常方便。