Выбор ответа Middle SSR, SSG, ISR, гидрация обновлено

Что даёт стриминг SSR

Вопрос

Страница рендерится на сервере, один блок (рекомендации) грузится 3 секунды. Что даст обёртка этого блока в <Suspense fallback={<Skeleton/>}> при стриминговом SSR?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Оболочка уйдёт сразу со скелетоном, а блок допишется в тот же ответ. Стриминговый SSR (renderToPipeableStream, App Router) отправляет HTML кусками: сначала всё вне границы Suspense с фолбэком, потом, когда данные готовы, дописывает в тот же поток HTML блока и маленький скрипт, вставляющий его на место.

Варианты ответа

  1. Оболочка уйдёт сразу со скелетоном, а блок допишется в тот же ответправильный ответ
  2. Рекомендации будут загружены на клиенте отдельным запросом после гидрации
  3. Сервер всё равно будет ждать 3 секунды, но браузер покажет скелетон
  4. Ничего: Suspense работает только на клиенте и на SSR не влияет

Разбор

Стриминговый SSR (renderToPipeableStream, App Router) отправляет HTML кусками: сначала всё вне границы Suspense с фолбэком, потом, когда данные готовы, дописывает в тот же поток HTML блока и маленький скрипт, вставляющий его на место. Загрузка не уходит на клиент. Сервер не держит весь ответ. Suspense на сервере работает с React 18.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.