Я использую sw-precache для создания моей службы работы с процессом сборки CLI Polymer, поэтому он предназначен для обновления хэша обновленных файлов, чтобы сигнализировать о необходимости обновления кеша. Но мой обновленный контент не заменяется в кеше, поэтому он получает старую версию, если я обновляю ctrl + r, но новую версию, если я обновляю ctrl + shift + r. Причиной этого может быть то, что мой сервисный работник не обновляется.Как заставить сервисного работника обновить?
This doc утверждает, что
Если есть даже разница БАЙТА в рабоче файле службы по сравнению с тем, что она в настоящее время, он считает, что новым.
, но что, если мой новый сервисный работник не изменил байта? (как это происходит, если изменился только один хеш). Как настроить sw-precache для обновления работы службы при каждом новом запросе?
Вы посмотрели на это? https: //developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting И, пожалуйста, подтвердите, что хеши работают правильно: это означает, что после изменения файла кэшированных активов он отражает его для обслуживания рабочего содержимого. Другими словами, изменение значения хэш-функции у обслуживающего. Опасайтесь, что ** SW не заботится и не может проверять содержимое или версию файлов активов **. Единственное, что может вызвать его обновление - это собственный контент. Таким образом, изменения в файлах активов должны отражать их ссылки в SW. например '/style.css? {hash-of-the-file}' –
Я уверен, что хэш меняется. «SkipWaiting» я не тестировал, я прочитал документацию и понял, что это предназначено для принудительного обновления без перезагрузки страницы. Мое дело, похоже, отличается от того, как жизненный цикл сервисного работника заканчивается, когда есть еще один, ожидающий, и страница перезагружается без необходимости «skipWaiting». –
Это просто неправда. [см. Документацию] (https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Updating_your_service_worker) _... новая версия установлена в фоновом режиме, но еще не установлена активируется. Он активируется только тогда, когда больше не загружаются страницы, которые все еще используют старый рабочий службы. Как только таких страниц еще не загружены, активируется новый сервисный работник. –