一、作用
離線瀏覽 - 根據(jù)文件規(guī)則把資源緩存在本地,脫機(jī)依然能夠訪問(wèn)資源,聯(lián)網(wǎng)會(huì)直接使用緩存在本地的文件。優(yōu)化加載速度,節(jié)約服務(wù)器資源。
二、適用場(chǎng)景
正如 manifest 英譯的名字:離線應(yīng)用程序緩存,這項(xiàng)功能是設(shè)計(jì)給會(huì)有離線場(chǎng)景的應(yīng)用來(lái)使用,例如:需要離線使用的手機(jī)APP/H5,亦或是PC端的純靜態(tài)頁(yè)面。
三、問(wèn)題
1.服務(wù)器資源更新后顯示滯后需要多刷新一次頁(yè)面
- 首次在載入頁(yè)面時(shí),瀏覽器會(huì)判斷是否引入了 manifest,若檢測(cè)到引入,則下載并按文件規(guī)則緩存資源。
- 再次載入頁(yè)面時(shí),便會(huì)根據(jù) manifest 中規(guī)定的緩存文件使用本地緩存而不是請(qǐng)求服務(wù)器資源。
- 當(dāng) manifest 文件更新時(shí),頁(yè)面加載已經(jīng)進(jìn)行,但是緩存更新尚未完成,便會(huì)先使用舊 manifest 所緩存的文件,同時(shí)瀏覽器會(huì)將新的 manifest 文件里的緩存文件下載下來(lái),若想看到最新的靜態(tài)資源需要刷新下頁(yè)面重新加載一次。
2.全量加載
當(dāng) manifest 文件更新時(shí),所有的資源都要全部被下載一次,并且其中一個(gè)出現(xiàn)異常會(huì)導(dǎo)致整個(gè) manifest 運(yùn)行異常。
3.W3C標(biāo)準(zhǔn)及瀏覽器支持
作為 H5 的新屬性,初衷是用來(lái)構(gòu)造離線應(yīng)用的,緩存網(wǎng)站資源的話原本瀏覽器的緩存機(jī)制(304)已經(jīng)很好了,沒(méi)必要再使用 manifest 做緩存;實(shí)際上因?yàn)槭褂梅错懖⒉缓?,W3C正在廢棄 manifest。
四、使用方法
首先在標(biāo)簽 <html> 中指定 manifest 配置文件。
<html manifest="manifest.appcache">
配置文件 manifest.appcache。
CACHE MANIFEST
# 井號(hào)備注,這邊可以放版本更新時(shí)間,修改備注算更新 manifest 文件
CACHE:
# 首次下載 CACHE 后列出來(lái)的文件后緩存到本地。
/favicon.ico
/main.css
NETWORK:
# NETWORK 下的文件不可被緩存,必須要與服務(wù)器連接。
login.php
FALLBACK:
# 一行放兩個(gè)路徑,第一個(gè)是訪問(wèn)資源,第二個(gè)是替補(bǔ);當(dāng)無(wú)法訪問(wèn)前一個(gè)資源時(shí),用后一個(gè)資源代替之。
/cat/ /404.html
注意
manifest 會(huì)把當(dāng)前頁(yè)面緩存下來(lái),所以若想更新當(dāng)前頁(yè),只能先更新 manifest 文件。
五、總結(jié)
manifest 適用于需要離線運(yùn)行的應(yīng)用(定時(shí)器,計(jì)算器,閱讀器等工具);而需要經(jīng)常發(fā)布頻繁更新的網(wǎng)站,這種離線緩存機(jī)制并不適合。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。