導(dǎo)讀
Manifest 是 H5提供的一種應(yīng)用緩存機(jī)制, 基于它web應(yīng)用可以實(shí)現(xiàn)離線訪問(offline cache). 為此, 瀏覽器還提供了應(yīng)用緩存的api–applicationCache. 雖然manifest的技術(shù)已被web標(biāo)準(zhǔn)廢棄, 但這不影響我們嘗試去了解它. 也正是因?yàn)閙anifest的應(yīng)用緩存機(jī)制如此誘人, 餓了么 和 office 365郵箱等都還在使用著它!
描述
對(duì)manifest熟悉的同學(xué)可以跳過此節(jié).
鑒于manifest應(yīng)用緩存的技術(shù), 我們可以做到:
離線訪問: 即使服務(wù)器掛了, 或者沒有網(wǎng)絡(luò), 用戶依然可以正常瀏覽網(wǎng)頁(yè)內(nèi)容.
訪問更快: 數(shù)據(jù)存在于本地, 省去了瀏覽器發(fā)起http請(qǐng)求的時(shí)間, 因此訪問更快, 移動(dòng)端效果更為明顯.
降低負(fù)載: 瀏覽器只在manifest文件改動(dòng)時(shí)才去服務(wù)器下載需要緩存的資源, 大大降低了服務(wù)器負(fù)載.
manifest緩存的過程如下(來(lái)自網(wǎng)絡(luò)):
支持性
主流瀏覽器都支持manifest應(yīng)用緩存技術(shù). 如下表格:
H5標(biāo)準(zhǔn)中, Offline Web applications 部分有如下描述:
This feature is in the process of being removed from the Web platform. (This is a long process that takes many years.) Using any of the offline Web application features at this time is highly discouraged. Use service workers instead. [SW]
因此后續(xù)我將在其他文章中繼續(xù)介紹 service workers, 本篇繼續(xù)關(guān)注manifest.
如何開啟應(yīng)用緩存
manifest使用緩存清單進(jìn)行管理, 緩存清單需要與html標(biāo)簽進(jìn)行關(guān)聯(lián). 如下:
<html manifest="test.appcache"> ... </html>
在html標(biāo)簽中指定manifest文件, 便表示該網(wǎng)頁(yè)使用manifest進(jìn)行離線緩存. 該網(wǎng)頁(yè)內(nèi)需要緩存的文件列表需要在 test.appcache 文本文件中指定.
manifest緩存清單
就像寫作文一樣, manifest采用經(jīng)典的三段式. 分別為: CACHE, NETWORK 和 FALLBACK. 如下, 先看一個(gè)栗子