安装ServiceWorker后,SW在将来会永久存在吗?

时间:2019-06-21 05:59:34

标签: service-worker workbox

我编写并部署了一个程序来安装ServiceWorker。

但是,由于ServiceWorker,服务的整体性能下降了。

因此,我决定从该服务中删除ServiceWorker。

我已经使用ServiceWorker部署了服务。除非在程序端明确将其卸载,否则不会将其从用户浏览器中删除吗?

还是随着时间的流逝会自动从已经运行ServiceWorker的用户的浏览器中将其删除?

此外,如果必须显式删除它,我应该编写以下代码吗?

navigator.serviceWorker.getRegistrations().then(function(registrations) {
  for(let registration of registrations) {
    registration.unregister()
  }
})

1 个答案:

答案 0 :(得分:1)

浏览器实现了回叫程序,在该程序中,自上次间隔24小时后,它们将自动检查SW脚本更新。在此检查中,将绕过浏览器的HTTP缓存,并且将向服务器查询该文件的新版本。因此,从理论上讲,每个客户应在足够长的时间内自动删除软件。

但是,此自动更新不在最初的SW实现中。如果某人使用的旧浏览器或一些较小的浏览器不支持此功能,那可能还不够。因此,我还将使用您提供的注销代码。

同时使用。

相关问题