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
#html5