Firefox продолжает обновлять работника сервиса при перезагрузке - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть служащий, который поддерживает мою страницу для работы в автономном режиме В Firefox каждый раз, когда я меняю страницу или перезагружаю ее, на сервис-работнике запускается новое событие установки. Бессмысленно говорить, что я не хочу, чтобы это произошло, а также, по специфике, это не должно происходить ... а на хроме у меня предсказуемое и связное поведение

У меня есть другой сервисный работник, который работает при некоторых обстоятельствах вместо основного, он почти пустой, но этот не переустанавливается каждый раз, у меня есть console.log, чтобы доказать это

установка из клиента довольно проста

console.log('[Client] start register');
await navigator.serviceWorker.register(scriptpath.js)

на основном ПО у меня есть стандартный EventListener:

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()
    );
});


но не смотря ни на что, главный сервисный работник каждый раз переустанавливается, другой нет.

сам по себе, я могу принять это, если не факт, что у меня есть какая-то переменная на главном sw, которую я меняю через сообщение, и каждый раз при переустановке они, очевидно, теряются

...