Выбор ответа Middle SSR, SSG, ISR, гидрация обновлено
Что даёт стриминг SSR
Вопрос
Страница рендерится на сервере, один блок (рекомендации) грузится 3 секунды. Что даст обёртка этого блока в <Suspense fallback={<Skeleton/>}> при стриминговом SSR?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Оболочка уйдёт сразу со скелетоном, а блок допишется в тот же ответ. Стриминговый SSR (renderToPipeableStream, App Router) отправляет HTML кусками: сначала всё вне границы Suspense с фолбэком, потом, когда данные готовы, дописывает в тот же поток HTML блока и маленький скрипт, вставляющий его на место.
Варианты ответа
- Оболочка уйдёт сразу со скелетоном, а блок допишется в тот же ответправильный ответ
- Рекомендации будут загружены на клиенте отдельным запросом после гидрации
- Сервер всё равно будет ждать 3 секунды, но браузер покажет скелетон
- Ничего: Suspense работает только на клиенте и на SSR не влияет
Разбор
Стриминговый SSR (renderToPipeableStream, App Router) отправляет HTML кусками: сначала всё вне границы Suspense с фолбэком, потом, когда данные готовы, дописывает в тот же поток HTML блока и маленький скрипт, вставляющий его на место. Загрузка не уходит на клиент. Сервер не держит весь ответ. Suspense на сервере работает с React 18.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.