下面是场景:
你有一个已经通过 SW 进行缓存的网站。你部署了一个包含更新版本的 SW,其中包括一个缓存破坏版本。公司随后宣布了新功能。人们访问该网站,然而,即使 SW 破坏了缓存,它仍然在后台提供先前的缓存,同时更新其缓存。因此,来寻找新功能的访问者看不到它们。
这是 ServiceWorkers 的预期体验吗?有哪些推荐的策略可以解决这个问题?
下面是场景:
你有一个已经通过 SW 进行缓存的网站。你部署了一个包含更新版本的 SW,其中包括一个缓存破坏版本。公司随后宣布了新功能。人们访问该网站,然而,即使 SW 破坏了缓存,它仍然在后台提供先前的缓存,同时更新其缓存。因此,来寻找新功能的访问者看不到它们。
这是 ServiceWorkers 的预期体验吗?有哪些推荐的策略可以解决这个问题?
如果您选择采用缓存优先的策略来提供资源,则这是预期的行为。
有两种选项:
sw-precache
生成的工作者),那么您可以通过监听特定的服务工作者控制器事件来检测这些更新,并使用它们来触发消息。(这里是一个例子。)