1.定義清單manifest
離線web應用因為有很多資源文件是在線加載的,所以需要提前將這些資源文件緩存起來。
清單manifest可以列出離線工作所需的所有資源:
CACHE MANIFEST
index.html
banner.png
apply.png
FALLBACK:
*.png offline.png
CACHE:
cherries.png
NETWORK:
ready.png
其中,
FALLBACK區域:如果緩存中沒有找到相關資源,則使用備用圖片。
CACHE區域:需要提前緩存的文件
NETWORK區域:瀏覽器會嘗試從服務器請求相關資源
2.檢測瀏覽器狀態
可以根據瀏覽器的window.navigator.onLine屬性判斷瀏覽器離線還是在線。
if(window.navigator.onLine){
console.log('online');
}
else{
console.log('offline');
}
這個屬性只有在瀏覽器確定它是離線狀態才是明確的。
3.操作離線緩存
window.applicationCache.update() 更新緩存,確保項目中的資源為最新
*調用此方法時,瀏覽器會檢查清單文件是否有變化,如果有變化就會重新載入緩存
window.applicationCache.swapCache() 交換緩存,將已更新的緩存與當前緩存交換
*調用此方法時頁面不會自動刷新,只有下次從緩存中請求資源時才會使用
*目前chorme瀏覽器對離線web應用的支持不是很好,備用區域和操作離線緩存暫時不可用