applicationCache對象表明了本地緩存,能夠在js中進行一些操做。能夠用它來通知用戶本地緩存中已經被更新,也容許用戶手工更新本地緩存。
applicationCache.addEventListener("updateready",function(){
alert("本地緩存已被更新,您能夠刷新頁面來獲得本程序的最新版本");
},true);
一個比較有意思的用法:
setInterval(function(){
// 手工檢查是否有更新
applicationCache.update();
},5000);
applicationCache.addEventListener("updateready",function(){
if(confirm("本地緩存已被更新,須要刷新頁面來獲取應用程序最新版本,是否刷新?")){
// 手工更新本地緩存
applicationCache.swapCache();
// 重載頁面
location.reload();
}
},true);
【applicationCache對象的事件】
applicationCache能夠監聽的事件還有:
checking ---- 瀏覽器發現網頁具備manifest屬性,觸發checking事件,檢查manifest文件是否存在。不存在時,觸發error事件。
noupdate ---- 見downloading。
downloading ---- 瀏覽器檢查到manifest文件,判斷文件是否被更新,若是文件未更新,觸發noupdate事件,不然觸發downloading事件,而後開發下載這些資源。在下載的同時,週期性地觸發progress事件。
progress ---- 見downloading。
updateready ---- 見cached。
cached ---- manifest文件中要求的緩存文件所有下載結束後,若是是首次緩存,觸發cached事件,表示首次緩存成功,若是是更新manifest文件引發的從新下載,下載結束後不觸發cached事件,而是觸發updateready事件。
error ---- 見checking。
首次訪問網頁時,依次觸發的事件爲:checking、downloading、progress、progress、cached
再次打開網頁,且manifest文件沒有更新時:noupdate
再次打開網頁,且manifest文件已被更新時:downloading、progress、progress、updateready
#html5html