Задать вопрос
@buterforever

Как скинуть кеш, закешированный с помощью service worker?

Внедряю на сайт PWA (Progressive web application).
Залил первую версию service worker, которая закешировала страницу.
После этого изменил страницу, отредактировал service worker.
Но сейчас страница закеширована в старом варианте и новый service worker не работает.
Как его можно скинуть всем пользователям?
На ПК понятно как скинуть в хроме.
А как скинуть на телефоне в браузере. Хотелось бы это сделать программным способом.

Нашел такой код, вставил его в скрипт, но он не срабатывает, тк страница и все остальное закешировано.

navigator.serviceWorker.getRegistrations().then(function(registrations) {
  console.log(registrations);
  for(let registration of registrations) {
    registration.unregister();
  }
});
  • Вопрос задан
  • 681 просмотр
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
sharpfellow
@sharpfellow
Front
Service Worker обновляется в нескольких случаях, до этого он находится в состоянии ожидания (Waiting):
  1. При закрытии вкладки со старым процессом и открытии новой. Недостаточно просто сделать reload
  2. Добавить строчку self.skipWaiting(); в listener для install. Это строка будет принудительно обновлять Service Worker и старый кэш будет уже активен

Для второго пункта
self.addEventListener('install', async event => {
  self.skipWaiting();
});

В данном репозиторие можно почитать подробнее про начало работы с PWA и в частности про Service Workers
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы