Как заставить сервисного работника очистить кеш? - PullRequest
0 голосов
/ 04 декабря 2018

Я разработал PWA.Проблема, с которой я столкнулся, заключается в том, что при выпуске новой версии я увеличиваю номер версии в файле рабочего сервиса (sw.js), и когда он запускается, кеш восстанавливается.Номер версии - это имя кеша, поэтому изменение должно инициировать новый кеш, который он запускает при запуске.

Проблема здесь в том, когда он запускается.

Некоторым из моих клиентов трудно'получить' последнюю версию, потому что их браузер не хочет загружать новую версию и настаивает на обслуживании старой версии, пока я не проинструктирую клиента вручную очистить кэш браузера и перезагрузить Chrome.

В моем проекте ямой сервисный работник зарегистрирован в js-файле с именем app.js.

Возможно, проблема в том, что sw.js импортируется зарегистрированным в файле app.js со следующей строкой:

.register('/public/sw.js')

Мой вопрос заключается в том, будет ли нормально использовать метод очистки кэша в app.js, чтобы эти файлы запускались каждый раз, а затем, когда я делаюИзменения в файле sw.js (обозначенные номером новой версии) старый кеш не будет использоваться, но будет создан новый кеш.

Для очистки кеша app.js я бы использовал

               var versionUpdate = (new Date()).getTime();  

               var script = document.createElement("script");  

               script.type = "text/javascript";  

               script.src = "/js/app.js?v=" + versionUpdate;  

               document.body.appendChild(script);  

Для тех, кто знает о PWA ... Это может вызвать какие-либо неблагоприятные последствия?

Спасибо

...