是否可以使用Service Worker获取新版本的应用并立即显示。 服务器上有新版本 用户访问页面 Service Worker正在从服务器刷新所有数据 用户无需重新加载页面即可获取最新内容 我看到了一条评论,说用户需要确认页面重新加载,这是真的吗? -> 更新:不需要!
你所描述的模型是一种服务工作者始终采用网络优先的模式,并且默认情况下不显示任何缓存内容。在这种情况下,你不需要预缓存任何内容。你会失去采用缓存优先方式所带来的性能提升。与没有服务工作者相比的优势是,当网络完全不可用时,你至少可以回退到缓存的内容,而不是浏览器显示一个通用的离线错误页面。
我看到你想要立即向用户提供最新版本,为此,你应该通过警告框或弹出提示来告诉用户有新版本可用,并允许他触发页面重新加载(按钮)。你应该已经通过向 Service Worker 发送消息来安装更新的服务工作者,告诉它跳过等待 (skipWaiting()),这样你就可以确保页面重新加载将保证传递你资产的最新版本。