Я создаю приложение React, включающее рендеринг на стороне сервера.Я использую веб-пакет HMR и настроил сервер HMR на отдельном порту со стороны сервера экспресс-обслуживания (поэтому я запускаю два «сервера», один для приложения и один для HMR).
Из-за SSR на компоненты React ссылаются как на клиентскую, так и на серверную сборки, и поэтому изменения вызывают триггеры как на стороне клиента, так и на стороне сервера.
Проблема, которую я вижу, состоит в том, что клиент получает обновление HMR и запускаетсяповторно отобразить изменения, но часть из них включает ссылки на ресурсы изображений, которые обслуживаются сервером.Сервер все еще перезагружается, когда начинают выполняться запросы, поэтому я получаю сообщение «host unreachable» для большинства ресурсов образа (одна из причин, по которой перезапуск сервера немного медленный, заключается в том, что ему необходимо подключиться и проверить таблицы базы данных).
Я видел несколько статей, относящихся к HMR, применяемому к серверу, но это кажется немного отрывочным, и может потребоваться небольшая задержка, которая предотвратит необходимость перезагрузки всей клиентской страницы, когда она работает.Я не нашел варианта для этого.
Сервер использует express.static для обслуживания ресурсов изображения, и это в конечном итоге изменится так, что сервер будет кэшировать и предоставлять несколько вариантов активов изображения на основетребования к клиенту (поэтому ресурсы образа являются отзывчивыми, например, srcSet и т. д.).
Я вижу, что это может стать проблемой, если есть какие-либо клиентские запросы к серверу, такие как обновления БД, инициированные клиентомre-render.
Мне интересно, как отложить / отложить повторный рендеринг клиента до тех пор, пока сервер не вернется в рабочее состояние?