我有一个支持我的页面离线工作的服务人员 每次我更改页面或重新加载页面时,在firefox上,服务工作者上都会触发一个新的安装事件。没用的说我不希望它发生,具体来说,它也不应该发生... 在chrome上,我的行为举止可预测
在某些情况下,我有另一位服务人员代替main运行,几乎是空的,但并不是每次都重新安装,我有console.log来证明它
从客户端安装非常简单
console.log('[Client] start register');
await navigator.serviceWorker.register(scriptpath.js)
在主软件上,我具有标准的事件监听器:
var foo = undefined;
var bar = false;
self.addEventListener('install', evt=>{
console.log('[MainWorker] install');
evt.waitUntil(
self.skipWaiting()
);
});
self.addEventListener('activate', evt=>{
console.log('[MainWorker] activated!');
evt.waitUntil(
initializeVars(),
self.clients.claim()
);
});
...other things like fetch and message
此代码在辅助软件上
var Test = false;
self.addEventListener('install', evt=>{
console.log('[SecondaryWorker] install');
evt.waitUntil(
self.skipWaiting()
);
});
self.addEventListener('activate', evt=>{
console.log('[SecondaryWorker] activated!');
Test = true;
evt.waitUntil(
self.clients.claim()
);
});
但是无论如何,每次都会重新安装主要服务人员,而另一个则不会。
就我本身而言,如果不是通过消息更改我在主软件上有一些变量的事实,并且每次重新安装它们显然都丢失了,那么我可以接受