applicationCachecss
第一次加載後將數據緩存,若是沒有清除緩存,下一次沒有網絡也能加載。
1. 使用 manifest
屬性,引入 .appcache
文件html
.appcache
<!DOCTYPE html> <html lang="en" manifest="demo.appcache"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
2. 編寫 demo.appcache
文件html5
NETWORK: 下面的文件永遠不會被緩存,且離線時是不可用的
可使用星號來指示全部其餘資源/文件都須要因特網鏈接瀏覽器
NETWORK: *
CACHE MANIFEST logo.png main.js NETWORK: index.css FALLBACK: # 訪問失敗後 重定向 /html5/ /404.html
目前爲止就實現了離線緩存緩存
window.applicationCache.status
查看緩存的當前狀態網絡
1. applicationCache.update()
主動更新緩存app
//利用定時器隔必定時間自動更新一下緩存 setInterval(function(){ applicationCache.update(); },10000);
2. swapCache()
全部的請求都重新緩存中獲取
注意:這並不會從新載入應用程序:全部已經載入的html文件、圖片、腳本等資源都不會改變。可是,以後的請求將從最新的緩存中獲取。這會致使「版本錯亂」的問題,所以通常不推薦使用,除非應用程序設計得很好,確保這樣的方式沒有問題。url
1. updateready 當有新的緩存,並更新完之後,觸發此事件設計
window.applicationCache.onupdateready = function(){ alert("緩存更新完成"); },false);
2. progress 有新的緩存,在下載過程當中,會間斷性觸發code
event包含:loaded和total。loaded表明當前已經加載完成的文件,total爲總共須要更新的文件數
applicationCache.onprogress = function(e){ alert(applicationCache.status); //3... 3表示正在下載 },false);
3. cached 下載完成而且首次將應用程序下載到緩存中時觸發
4. updaterady 更新完成,下載完成並將緩存中的應用程序更新後觸發
觸發此事件的時候,用戶任然能夠看到老版本的應用程序
5. error 瀏覽器處於離線狀態,檢查清單列表失敗
當一個未緩存的應用程序引用一個不存在的清單文件,也會觸發此事件
6. obsolete 若是一個緩存的應用程序引用一個不存在的清單文件會觸發
7. checking 正在檢查,每次載入一個設置了manifest屬性的html文件,瀏覽器都會觸發
8. downloading 正在下載
9. noupdate 檢查更新結束,沒有須要更新