我编写并部署了一个程序来安装ServiceWorker。
但是,由于ServiceWorker,服务的整体性能下降了。
因此,我决定从该服务中删除ServiceWorker。
我已经使用ServiceWorker部署了服务。除非在程序端明确将其卸载,否则不会将其从用户浏览器中删除吗?
还是随着时间的流逝会自动从已经运行ServiceWorker的用户的浏览器中将其删除?
此外,如果必须显式删除它,我应该编写以下代码吗?
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
}
})
答案 0 :(得分:1)
浏览器实现了回叫程序,在该程序中,自上次间隔24小时后,它们将自动检查SW脚本更新。在此检查中,将绕过浏览器的HTTP缓存,并且将向服务器查询该文件的新版本。因此,从理论上讲,每个客户应在足够长的时间内自动删除软件。
但是,此自动更新不在最初的SW实现中。如果某人使用的旧浏览器或一些较小的浏览器不支持此功能,那可能还不够。因此,我还将使用您提供的注销代码。
同时使用。