advanced

Streaming

Отправляйте shell и готовые сегменты через Suspense boundaries для улучшения perceived latency.

Streaming отдаёт shell маршрута рано и сбрасывает готовые сегменты по мере resolve async Server Components. `loading.tsx` и Suspense boundaries задают, что видит пользователь при медленной загрузке данных.

					export default function Page() {
  return (
    <>
      <Header />
      <Suspense fallback={<Skeleton />}>
        <SlowRecommendations />
      </Suspense>
    </>
  );
}
				

Streaming улучшает perceived latency без ожидания самого медленного fetch для всей страницы.

На интервью: shell-first delivery, размещение boundaries и обработка ошибок во вложенном Suspense.

Типовые ошибки: один гигантский async page без boundaries, streaming контента, который должен быть static, waterfalls между независимыми данными.

Компромисс: сложность дизайна boundaries против лучшего TTFB и progressive paint.

Чеклист:

  • Медленные server components в Suspense.
  • Быстрый above-the-fold shell.
  • error.tsx для сбоев сегмента.
  • Без serial await независимых данных.