Есть сайт, фронт написан на ReactJS. Для корректной работы СЕО используется SSR.
Алгоритм примерно такой :
1 загрузка страницы
- браузер открывает /foo;
- ССР проверяет есть ли в кеше /foo - не находит;
- ССР на сервере рендерит и исполняет реакт приложение по запросу /foo;
- ССР кладет в кеш ХТМЛ, который получился в результате рендера /foo;
- ССР отдает браузеру ХТМЛ, который получился в результате рендера /foo;
- браузер выполняет асинхронные запросы, которые есть ХТМЛ, который получился в результате рендера /foo (CSS, JS, favicon...);
- подгрузившееся приложение реакт "понимает что страничка уже отрисована и не надо выполнять роутинг и все такое";
- реакт обрабатывает дальнейшие действия пользователя (как и в обычном SPA).
Последующие обновления
- браузер открывает /foo;
- ССР проверяет есть ли в кеше /foo - находит;
- ССР отдает браузеру ХТМЛ, который получился в результате рендера /foo;
- браузер выполняет асинхронные запросы, которые есть ХТМЛ, который получился в результате рендера /foo (CSS, JS, favicon...);
- подгрузившееся приложение реакт "понимает что страничка уже отрисована и не надо выполнять роутинг и все такое";
- реакт обрабатывает дальнейшие действия пользователя (как и в обычном SPA).
Проблема заключается на фронте в том что при каждом обновлении страницы запускается роутинг и рисуется всё приложение заново и таким образом появляется "мерцание", то есть 7 пункт.
Вопрос: Можно ли как то остановить эту отрисовку в определенный момент? Сказать роуту , что именно сейчас отрисовывать не нужно. Может есть какое -то популярное решение ?