借助 Service Worker, 可以在注册完成安装 Service Worker 时, 抓取资源写入缓存:
调用 self.skipWaiting() 方法是为了在页面更新的过程当中, 新的 Service...处理动态缓存
网页抓取资源的过程中, 在 Service Worker 可以捕获到 fetch 事件, 可以编写代码决定如何响应资源的请求:
真实的项目当中, 可以根据资源的类型, 站点的特点, 可以专门设计复杂的策略...:
在新安装的 Service Worker 中通过调用 self.clients.claim() 取得页面的控制权, 这样之后打开页面都会使用版本更新的缓存。...添加到首屏之后, 即便在离线状态下, 页面也可以打开。...比如在 HTML 当中更新版本到 2:
同时 sw.js 文件当中也要进行一次修改, 保证文件发生改变, 同时缓存的名称也变改变了:
然后重新打开一次页面, 这个时候渲染的页面依然是旧的, 不过可以从