У меня есть куча файлов в моем предварительном кэше PWA, управляемом Workbox. Как бы я слушал обновления этих предварительно кэшированных файлов?
Справочная информация: Safari, похоже, сохраняет устаревшие копии CSS файлов после window.location.reload()
, поэтому, если обновление моего приложения включает обновления до CSS, я бы хотел быть смог сказать пользователю принудительно закрыть и перезапустить приложение.
Я попытался добавить плагин BroadcastUpdate
:
workbox.precaching.addPlugins([
new workbox.broadcastUpdate.BroadcastUpdatePlugin(),
]);
После этого я ожидал сообщения, которые будут отправлены, если новая версия рабочего сервиса принесла с собой новые версии предварительно кэшированных файлов. Затем я собирался проверить событие сообщения, и если URL-адрес заканчивался .css
, я мог бы попросить пользователя принудительно закрыть его в соответствующий момент.
Однако при обновлении приложения сообщения не отправляются (обновите манифест предварительного кэширования, используя injectManifest и вызовите reg.update () ).
Я знаю, что код прослушивателя сообщений работает. Я использую это в других местах. Но BroadcastUpdatePlugin
, похоже, не отправляет никаких сообщений, когда изменяются предварительно кэшированные файлы.
Что здесь не так? Я просто жду не того от BroadcastUpdatePlugin
? Разве он не должен использоваться с предварительным кэшированием? Если да, то есть ли у кого-нибудь еще идеи о том, как я могу просто прослушивать обновления предварительно кэшированных ресурсов?