Реагирование SSR и замена горячего модуля на клиенте - ожидание перезагрузки сервера - PullRequest
0 голосов
/ 09 апреля 2019

Я создаю приложение React, включающее рендеринг на стороне сервера.Я использую веб-пакет HMR и настроил сервер HMR на отдельном порту со стороны сервера экспресс-обслуживания (поэтому я запускаю два «сервера», один для приложения и один для HMR).

Из-за SSR на компоненты React ссылаются как на клиентскую, так и на серверную сборки, и поэтому изменения вызывают триггеры как на стороне клиента, так и на стороне сервера.

Проблема, которую я вижу, состоит в том, что клиент получает обновление HMR и запускаетсяповторно отобразить изменения, но часть из них включает ссылки на ресурсы изображений, которые обслуживаются сервером.Сервер все еще перезагружается, когда начинают выполняться запросы, поэтому я получаю сообщение «host unreachable» для большинства ресурсов образа (одна из причин, по которой перезапуск сервера немного медленный, заключается в том, что ему необходимо подключиться и проверить таблицы базы данных).

Я видел несколько статей, относящихся к HMR, применяемому к серверу, но это кажется немного отрывочным, и может потребоваться небольшая задержка, которая предотвратит необходимость перезагрузки всей клиентской страницы, когда она работает.Я не нашел варианта для этого.

Сервер использует express.static для обслуживания ресурсов изображения, и это в конечном итоге изменится так, что сервер будет кэшировать и предоставлять несколько вариантов активов изображения на основетребования к клиенту (поэтому ресурсы образа являются отзывчивыми, например, srcSet и т. д.).

Я вижу, что это может стать проблемой, если есть какие-либо клиентские запросы к серверу, такие как обновления БД, инициированные клиентомre-render.

Мне интересно, как отложить / отложить повторный рендеринг клиента до тех пор, пока сервер не вернется в рабочее состояние?

...