Javascript ServiceWorker注销-如何完全清理(缺少事件)

Javascript ServiceWorker注销-如何完全清理(缺少事件),javascript,service-worker,progressive-web-apps,Javascript,Service Worker,Progressive Web Apps,e、 g.我有一个服务人员,他每秒钟只会登录到控制台,表明他还活着 service-worker.js: setInterval(() => { console.log("ALIVE"); }, 1000); 现在在我的应用程序中,我确实有一个unregister按钮,它将触发this.serviceWorkerRegistration.unregister() ServiceWorker将被标记为已删除(在Devtools中),但仍在Google Chrome中运行。这意味着日志记

e、 g.我有一个服务人员,他每秒钟只会登录到控制台,表明他还活着

service-worker.js:

setInterval(() => {
  console.log("ALIVE");
}, 1000);
现在在我的应用程序中,我确实有一个unregister按钮,它将触发
this.serviceWorkerRegistration.unregister()

ServiceWorker将被标记为已删除(在Devtools中),但仍在Google Chrome中运行。这意味着日志记录将继续。。。即使我使用Devtools->application->Clear Storage删除整个应用程序

我希望能找到像这样的事件。addEventListener(“安装”,函数(e)…,但根据规范没有

那么,我该如何在我的服务人员身上做清洁工作呢???


我希望通过将
setInterval
存储在一个变量中来解决这个问题,这样垃圾收集器就可以删除它-但是nope

顺便说一句:Firefox将在注销()后删除这个间隔和硬重新加载站点。完全关闭选项卡后,Chrome将删除间隔-在同一选项卡中重新加载将导致持续执行
setInterval
。但我仍然希望触发对javascript代码的完全删除/注销,而不需要访问者离开页面。。指示:
需要注意的是,当前控制的service worker客户端的活动worker(包含service worker注册)在所有使用此service worker注册的service worker客户端(包括其自身)卸载之前是有效的。即,unregister()方法只会影响后续导航。
我可能错了,但我认为这意味着软件无法立即删除自身,这解释了您看到的行为。您是否尝试过在服务人员中删除所有缓存并删除缓存白名单中未定义的任何缓存?请检查此项:Firefox将删除内部缓存注销()后的val和硬重新加载站点。完全关闭选项卡后,Chrome将删除间隔-在同一选项卡中重新加载将导致持续执行
setInterval
。但我仍然希望触发对javascript代码的完全删除/注销,而不需要访问者离开页面。。指示:
需要注意的是,当前控制的service worker客户端的活动worker(包含service worker注册)在所有使用此service worker注册的service worker客户端(包括其自身)卸载之前是有效的。即,unregister()方法只影响后续导航。
我可能错了,但我认为这意味着软件无法立即删除自身,这解释了您看到的行为。您是否尝试过在服务人员中删除所有缓存并删除缓存白名单中未定义的任何缓存?请检查此项