Size: a a a

React: русскоязычное сообщество

2020 January 17

AK

Andrey Kuznetsov in React: русскоязычное сообщество
2й путь плохо.. лучше перегрузить апп полностью
источник

A

Alexander in React: русскоязычное сообщество
Andrey Kuznetsov
2й путь плохо.. лучше перегрузить апп полностью
перехватывать 404 на чанк и перезагружать страницу?
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Например dynamic import
источник

oz

oleksii zhuk in React: русскоязычное сообщество
ломается картинка на iphone, на ПК картика вытянулась на весь экран, на iphone вылазит за высоту экрана
картинка с ПК https://prnt.sc/qoybyl -  тут нормально
[Photo]
Скрин с айфона
источник

A

Alexander in React: русскоязычное сообщество
Andrey Kuznetsov
Например dynamic import
направление понял, спасибо
источник
2020 January 18

T

The Fallen Phoenix in React: русскоязычное сообщество
Alexander
Приветствую.

Проблема наверняка стара как мир.

Есть react аппы, со стандартной конфигурацией вебпака от create-react-app.

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

Проблема в том, что меняется хеш в main chunks js файле и для некоторых клиентов идет запрос на новые инстансы, где старого чанка уже не существует.

Есть лучшие практики для решения этой проблемы?

Вижу несколько вариантов:
1. Отключить чанки

2. Настроить nginx хитро так, чтобы при отсутствии файла с таких хешем отдавал новый или настроить рефреш страницы каким-то образом

3. Видел либу для оффлайн кеширования чанков
А держать сразу несколько файлов в директории static?
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Не удалять старые пока явно не произошло обновление всех инстансов сервера до новой версии
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Клиент всегда определяет файлы для загрузки по index.html, который успел зафетчить
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Ну во первых через него можно передавать указание на сброс кеширования, а для самого index.html кеширование отключить
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Это плохо
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Andrey Kuznetsov
Это плохо
?
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Допускает коллизии если изменилась логика приложения.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
stale-while-revalidate=<seconds> плохо или no-cache?
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Не удалять старые...
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Andrey Kuznetsov
Допускает коллизии если изменилась логика приложения.
Так нет же, вебпак считает хэши по контенту файла.
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Хз... Мы о разном наверное
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Это значит, что если загружается новый indexhtml, старые ресурсы подгружены не будут
источник

AK

Andrey Kuznetsov in React: русскоязычное сообщество
Ну это то понятно
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Если стоит условие непрерывной работоспособности сайта при обновлении, избежать ситуации одновременной доступности двух версий нельзя.
источник

T

The Fallen Phoenix in React: русскоязычное сообщество
Вопрос как сделать это дело максимально мягко
источник