0Pricing
React Academy · Lektion

Streaming-SSR am Edge

Streamen Sie die HTML-Ausgabe von React mithilfe von ReadableStream, damit der Browser sofort sinnvolle Inhalte darstellen kann.

Streaming-SSR am Edge ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Der Vorteil des Streamings

Wenn ein Server HTML streamt, empfängt und rendert der Browser die Inhalte blockweise, anstatt auf das vollständige Dokument zu warten. Dadurch können Nutzer die sichtbaren Teile der Seite — Header, Navigation und Hero-Bereich — sehen und mit ihnen interagieren, während langsamere, datenabhängige Abschnitte noch geladen werden.

renderToReadableStream mit bootstrapScripts

Wenn Sie bootstrapScripts an renderToReadableStream übergeben, teilen Sie React mit, wo sich das clientseitige JavaScript-Bundle befindet. React fügt am Ende des Streams ein Script-Tag ein, damit der Browser das Bundle lädt und hydrateRoot aufruft. So wird die Seite interaktiv, sobald die einzelnen Abschnitte gestreamt wurden.

Suspense-Grenzen im Komponentenbaum

React verwendet Suspense-Grenzen, um den Komponentenbaum in unabhängig streambare Abschnitte aufzuteilen. Komponenten innerhalb einer Suspense-Grenze, die auf Daten warten (über ein geworfenes Promise), werden zunächst als Platzhalter gestreamt und später durch ihre tatsächlichen Inhalte ersetzt.

onShellReady: Wann das Streaming beginnt

Der onShellReady-Callback wird ausgelöst, sobald das HTML-Grundgerüst ohne ausgesetzte Inhalte — also alles außerhalb der Suspense-Grenzen — zum Streamen bereit ist. Dies ist der richtige Zeitpunkt, um den HTTP-Statuscode und die Response-Header festzulegen und anschließend pipe(res) aufzurufen oder mit dem Lesen aus dem ReadableStream zu beginnen.

Warum Statuscodes zuerst festgelegt werden müssen

HTTP-Statuscodes und Header müssen gesendet werden, bevor der Response-Body beginnt. Da das Streaming mit onShellReady startet, muss jede Fehlerbehandlungslogik — etwa das Setzen des Statuscodes 500 oder eine Weiterleitung — ausgeführt werden, bevor das Grundgerüst zu fließen beginnt. Sobald das Streaming begonnen hat, ist der Statuscode festgelegt.

Fehlerbehandlung: onShellError

onShellError wird ausgelöst, wenn ein schwerwiegender Fehler auftritt, bevor das Grundgerüst bereit ist — beispielsweise ein Fehler in einer übergeordneten Komponente außerhalb jeder Suspense-Grenze. In diesem Fall wird das Grundgerüst nie gestreamt, und Sie sollten mit einer statischen Fehlerseite antworten oder zu einer Fehlerroute weiterleiten.

Fehlerbehandlung: onError

onError wird bei behebbaren Fehlern innerhalb von Suspense-Grenzen ausgelöst. React kann den Rest der Seite weiterhin streamen; die fehlerhafte Grenze rendert ihre Fehler-Fallback-Oberfläche. Verwenden Sie onError für die Protokollierung: Erfassen Sie den Fehler in Ihrer Observability-Plattform, ohne den Stream abzubrechen.

Progressive Verbesserung und Timeouts

Wenn die Daten einer Suspense-Grenze zu lange benötigen, streamen Sie die Shell trotzdem und lassen Sie die Grenze auf dem Client hydratisieren. Implementieren Sie ein Timeout: Rufen Sie nach 5 Sekunden abort() für den Stream auf, wenn die Grenze noch nicht aufgelöst wurde; der Client ruft die Daten dann selbst über useEffect ab.

Streaming-Mechanik von Cloudflare Workers

Die Workers-Laufzeitumgebung übergibt den ReadableStream direkt als Response-Body. Die Infrastruktur von Cloudflare leitet jeden Chunk an den Browser des Benutzers weiter, sobald React ihn erzeugt, ohne das gesamte Dokument zu puffern. Das bedeutet, dass die ersten Bytes des HTML innerhalb von Millisekunden nach Eingang der Anfrage den Edge-PoP verlassen.

Abort: Lange Streams steuern

renderToReadableStream gibt eine Abort-Controller-Funktion zurück. Wenn die Anfrage abgebrochen wird (der Benutzer navigiert weg), stoppt der Aufruf von abort() React dabei, weiter zu rendern und Daten zu verarbeiten. Dadurch vermeiden Sie unnötige Berechnungen für verwaiste Anfragen und halten die CPU-Nutzung des Workers begrenzt.

End-to-End-Latenzprofil

Beim Edge-Streaming sieht die vollständige Latenzkette folgendermaßen aus: 5 ms (Anfrage zum nächstgelegenen PoP) + 2 ms (Cold Start des Workers) + 8 ms (Shell-Rendering) = 15 ms bis zum ersten Byte. Der Browser des Benutzers rendert das LCP-Element aus der Shell, während der Rest der Seite im Hintergrund weiter gestreamt wird.

Zeitpunkt von onShellReady

Wann genau wird der onShellReady-Callback während des Streaming-SSR aufgerufen?

Zusammenfassung der Lektion

Streaming-SSR vom Edge liefert HTML in Chunks und verbessert FCP und LCP, indem die Shell sofort gesendet wird. Suspense-Grenzen unterteilen den Baum in unabhängig streambare Abschnitte. onShellReady ist das Signal, mit dem das Piping gestartet wird — setzen Sie die Statuscodes, bevor Sie den Aufruf durchführen. onShellError verarbeitet fatale Fehler, onError behebbare Fehler, und abort() verhindert unnötige Arbeit bei abgebrochenen Anfragen.

Häufig gestellte Fragen

Ist die Lektion „Streaming-SSR am Edge“ kostenlos?

Ja — der vollständige Text von „Streaming-SSR am Edge“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Streaming-SSR am Edge“?

Streamen Sie die HTML-Ausgabe von React mithilfe von ReadableStream, damit der Browser sofort sinnvolle Inhalte darstellen kann. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Streaming-SSR am Edge“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was ist Edge Rendering und warum ist es wichtig
  2. React auf Cloudflare Workers mit Hono
  3. Streaming-SSR am Edge
  4. Edge-Caching-Strategien für React-Apps
← Zurück zu React Academy