Сервисный работник Angular развертывает критические изменения

Во время текущей работы над моим приложением в API (бэкенде), который использует приложение, произошли серьезные изменения.

Поскольку приложение использует сервис-воркер Angular, это означает, что в первый раз, когда возвращающиеся пользователи будут обращаться к приложению, некоторые вещи могут работать неправильно, пока сервис-воркер не обновит соответствующие файлы.

Кто-нибудь сталкивался с такой проблемой раньше? Какие возможные решения существуют?

Спасибо


person Matan Kadosh    schedule 04.11.2019    source источник


Ответы (1)


  • Если у вас есть критические изменения в интерфейсе. SW кэширует все приложение, поэтому, если приложение находится в версии 1, вы развертываете версию 2 (без удаления файлов и ресурсов javascript из версии 1), когда пользователь вернется, он загрузит все файлы javascript из версии 1 и начнет загрузку. версия 2.

  • Если у вас есть критические изменения на бэкенде. Вам придется сохранить устаревшие конечные точки или разработать интерфейсную систему, чтобы заставить пользователей обновляться. Принудительные обновления не всегда будут происходить.

person Serginho    schedule 04.11.2019
comment
Это действительно ломает изменения на бэкэнде. Есть ли лучшие практики для этого? также иметь все больше и больше устаревших конечных точек, что не похоже на правильный способ справиться с этим. - person Matan Kadosh; 07.11.2019
comment
@MatanKadosh Да. Вы должны изменить версию своего API. Например, вы можете отправить заголовок http APIversion: 1.0. Когда вы выпускаете новые версии, вам придется поддерживать N более старых версий, например 2. Если ваш API версии 3, вы помечаете конечные точки версии 2 и 1 как устаревшие. А когда вы выпускаете версию 4, в этом выпуске вы удалите конечные точки версии 1, потому что вы поддерживаете последние 2. Это способ управления версиями API. - person Serginho; 07.11.2019