Можете ли вы выпустить новую версию веб-сайта перед выключением сервера?
Там вы можете не только удалить ПО, но и отменить его кеш:
// Unregister the SW
navigator.serviceWorker.getRegistration()
.then(function(registration) {
if(registration){
registration.unregister()
.then(
function(success) {
// if success = true, unregister was successful
});
}
});
// Delete SW Cache
if ('caches' in window) {
caches.keys()
.then(function(keyList) {
return Promise.all(keyList.map(function(key) {
return caches.delete(key);
}));
})
}
Я написал статью о Сервисные работники и стратегии кэширования , если вы хотите посмотреть его.
Конечно, все пользователи, которые уже имеют ПО на своей стороне и не будут посещать ваш портал до его закрытия. вниз, все еще будет иметь старую версию, но для этого я не думаю, что у вас есть большой контроль.
ОБНОВЛЕНИЕ
Я дополнительно проверил некоторыедокументации, но я не смог найти ничего о времени жизни (даже на MDN документах ). Поэтому представляется невозможным определить ограничение времени изнутри ПО.
Проблема заключается в том, что работник службы работает независимо в своем потоке после его установки на клиенте. Поэтому вы не можете контролировать его, если только не разрешите установить новое ПО. Возможно, возможным решением было бы перенаправить текущий URL-адрес в конкретное приложение, которое просто позволяет загрузить новое программное обеспечение (которое удалит его и удалит кэш).