Как заставить пользователей использовать последнюю версию PWA? - PullRequest
0 голосов
/ 28 сентября 2018

Недавно мы запустили прогрессивное веб-приложение, но столкнулись с проблемами при выпуске обновлений для PWA.Когда мы запускаем новую версию приложения, большинство наших js-файлов дистрибутива переименовываются.

, например, файл с именем «1.ChunkName. abc .js» может стать «1.ChunkName». def .js '.

Таким образом, любые пользователи, которые загрузили PWA до того, как мы отправили обновление, будут использовать более старую версию, которая все еще ищет старый удаленный файл, который ломает большую частьфункциональность PWA.Эта проблема исправлена, если пользователь обновляет страницу, но, очевидно, мы не можем ожидать, что наши пользователи обновят страницу, когда они обнаружат ошибку.

Вот некоторые решения, которые я вижу:

  1. Не удаляйте старые файлы, чтобы старые версии по-прежнему работали.
  2. Используйте сервисного работника для проверки обновлений.
  3. Каким-то образом используйте MQTT / WebSockets, чтобы пользователи обновлялись до последних версий.версия.

Но я чувствую, что у всех них есть серьезные недостатки.

Итак, как я могу убедиться, что у пользователя есть беспроблемная работа, если обновление выдвигается во время его использованияPWA?

1 Ответ

0 голосов
/ 01 октября 2018

Решением, которое я использовал, является сохранение только общей части имени файла, например 1.Chunkname вместо 1.ChunkName.abc.js.

Таким образом, когда вы извлекаете их из кэша, вы можете сравнить первую часть с регулярным выражением и использовать только отклик с полным event.request.url сетевым ответом, когда кеш недоступен.

Хранение всех версий контента в вашем кэше определенно не является хорошей стратегией.Типичное использование вышесказанного - когда у вас есть изображения разных размеров (с суффиксом вроде «-16_16», «-32_32»), вы не будете кэшировать их все.Вместо этого вы сохраняете только один без суффикса.

...