Мое одностраничное веб-приложение, написанное как PWA. Это ASP. NET приложение веб-API, которое размещено в IIS. Мое приложение использует сервисный работник, который защищает оболочку моего приложения. Другое содержимое записывается в indexedDB или обновляется в кэше рабочего сервиса на лету, когда пользователь щелкает по приложению.
У меня проблема с изменениями кода. Когда я обновляю код и обновляю sh моего браузера, я вижу свои изменения непосредственно в коде javascript и html. Когда я go отключен, мое приложение возвращается к коду, который находится в моем сервисном работнике. Этот код все еще старый код. Кажется, не обновляется, когда я перезагружаю свое приложение. Мой сервисный работник выглядит так:
const urlsToCache = ['.'
, 'index.html'
, 'favicon.ico'
, 'service-worker.js'
// More sources are cached here
];
self.addEventListener('install', function (event) {
console.log('\'Install\' event triggered.');
event.waitUntil(
caches.open(CACHE).then(function (cache) {
console.log('Application shell and content has been cached.')
return cache.addAll(urlsToCache);
}).then(function (event) {
return self.skipWaiting();
})
);
});
self.addEventListener('activate', function (event) {
console.log('\'Activate\' event triggered.');
return self.clients.claim();
});
Для регистрации сервисного работника мой код выглядит так:
navigator.serviceWorker.register('./service-worker.js')
.then(function (registration) {
console.log('Registered: ', registration);
registration.update();
console.log('Updated: ', registration);
resolve(registration);
}).catch(function (error) {
console.log('Registration failed: ', error);
reject(error);
});
Поэтому, когда сервисный работник регистрируется, он также проверяет наличие обновлений. , Однако он обновляется только при изменении самого кода рабочего сервиса. Не тогда, когда код внутри оболочки приложения изменяется без изменения самого кода работника сервиса.
Как я могу убедиться, что код моего работника сервиса перезагружается, когда я изменяю код приложения и обновляю sh страницу