用户登录

修改了 manifest 文件以后,浏览器会按照文件里的列表重新去缓存资源 … 完成以后 … 会发生一个 updateready 事件 … 用户在刷新以后,就可以使用新版的资源了 …

下面我们可以利用 updateready 这个事件,另外再加上 applicationCache 的状态 … 去在这个页面上显示一个提醒信息。提醒用户应用已经更新了,请刷新一下页面。

HTML

先打开应用页面 … 添加一组 <div> 标签 … 上面定义一个 update 的 ID .. 我们可以把提醒的内容放在这个容器里面 ..

Script

打开 script.js ..

新建一个函数 … 叫它 function onUpdateReady(){} ,一会我们要让 updateready 这个事件发生以后,去执行这个函数 .... 在这个函数里 ...

先获取到 update 容器 … var message = document.getElementById("message");

然后设置一下它里面的内容 … message.innerHTML = "<div class='alert alert-warning'>应用已更新,<a href='#' onclick='location.reload()'>点击刷新页面</a></div>"

这里我用了 Bootstrap 的 Alert 组件的样式来显示这个提醒信息 …

在这个 点击刷新页面 这个链接上 … 添加了一个 onlick 属性 … 设置一下点击这个链接要做的事 … location.reload() … 就是刷新当前这个页面 ...

updateready

下面我们再去添加一个 updateready 事件的监听器 … 也就是,当发生这个事件的时候,让它去执行这个 onUpdateReady 函数 … 也就是在页面上显示一个提醒信息 …

window.applicationCache.addEventListener('updateready', onUpdateReady,false);

另外,我们可以再设置一下 … 当 Application Cache 的状态是 UPDATEREADY 的时候 … 也去执行一下 onUpdateReady() 这个函数 …

if(window.applicationCache.status === window.applicationCache.UPDATEREADY) {
onUpdateReady();
}

保存一下这个脚本文件 … 因为这个脚本文件是被缓存的资源 … 想让浏览器重新缓存它 … 需要去修改一下 manifest 文件 …

改一下这个注释的版本信息 .. 保存 …

测试

回到浏览器 … 刷新一下 … 然后再刷新一下 … 这样浏览器应该会缓存我们修改之后的 script.js … 并且应用到当前这个页面上 …

下面,我们再去修改一个地方..

打开 index.html … 改一下这个页面上的这个图像 … 保存 …

再回到 manifest 文件 … 修改一下版本信息 …

然后打开浏览器 … 打开浏览器的开发者工具 … Resources … Application Cache … offline.appcache … localhost …

在窗口的最下面,会显示当前的 AppCache 的状态 … 现在是 IDLE … 也就是空闲状态 …

刷新一下页面 ..

浏览器会重新缓存资源 … 最后会触发 updateready 事件 … 现在 AppCache 的状态就会变成 UPDATEREADY …

在页面上,会显示一个提醒 … 应用已更新 … 点击刷新 …

点击这个链接 … 会刷新当前的页面 …

AppCache 的状态会变成 IDLE … 同时页面会应用更新之后的资源 ….

更新 AppCache《 HTML5:应用缓存 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点