У меня есть служащий, который поддерживает мою страницу для работы в автономном режиме
В 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, которую я меняю через сообщение, и каждый раз при переустановке они, очевидно, теряются