Firefox使更新服务程序保持重新加载

时间:2019-04-16 16:41:26

标签: javascript firefox service-worker

我有一个支持我的页面离线工作的服务人员 每次我更改页面或重新加载页面时,在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()
    );
});


但是无论如何,每次都会重新安装主要服务人员,而另一个则不会。

就我本身而言,如果不是通过消息更改我在主软件上有一些变量的事实,并且每次重新安装它们显然都丢失了,那么我可以接受

0 个答案:

没有答案