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

问题描述 投票:3回答:2

是否有可能通过Service Worker获取新版本的应用程序并立即显示它。时间表:

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

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

javascript service-worker
2个回答
3
投票

您描述的模型是服务工作者始终使用network-first的模型,默认情况下不显示任何缓存的内容。在这种情况下,您最终不会预先缓存任何内容。

您丢失了从高速缓存优先获取的performance gains。与根本没有服务人员相比,优点是,当网络完全不可用时,您至少可以依靠缓存的内容,而不是浏览器显示一般的脱机错误页面。


0
投票

我看到您想向用户提供立即可用的最新版本,为此,您应该通过警报框或吐司告知用户可以使用新版本,从而允许他触发页面重新加载(按钮) 。您应该已经安装了更新的服务人员,方法是向SW发送消息,告诉他skipWaiting(),这样您可以确保可以确保重新加载页面以提供资产的最新版本。

© www.soinside.com 2019 - 2024. All rights reserved.