如何在页面加载时强制更新Service Worker以更新应用程序

3

是否可以使用Service Worker获取新版本的应用并立即显示。

  • 服务器上有新版本
  • 用户访问页面
  • Service Worker正在从服务器刷新所有数据
  • 用户无需重新加载页面即可获取最新内容

我看到了一条评论,说用户需要确认页面重新加载,这是真的吗? -> 更新:不需要!

2个回答

3
你所描述的模型是一种服务工作者始终采用网络优先的模式,并且默认情况下不显示任何缓存内容。在这种情况下,你不需要预缓存任何内容。
你会失去采用缓存优先方式所带来的性能提升。与没有服务工作者相比的优势是,当网络完全不可用时,你至少可以回退到缓存的内容,而不是浏览器显示一个通用的离线错误页面。

0

我看到你想要立即向用户提供最新版本,为此,你应该通过警告框或弹出提示来告诉用户有新版本可用,并允许他触发页面重新加载(按钮)。你应该已经通过向 Service Worker 发送消息来安装更新的服务工作者,告诉它跳过等待 (skipWaiting()),这样你就可以确保页面重新加载将保证传递你资产的最新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接