0Pricing
React Academy · Pelajaran

SSR Streaming dari Edge

Alirkan keluaran HTML React menggunakan ReadableStream agar peramban dapat segera menampilkan konten yang bermakna.

SSR Streaming dari Edge adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Keunggulan Pengaliran

Saat server mengalirkan HTML, browser menerima dan merender konten dalam beberapa bagian, alih-alih menunggu dokumen lengkap. Dengan demikian, pengguna dapat melihat dan berinteraksi dengan bagian halaman yang terlihat — header, navigasi, bagian hero — sementara bagian yang bergantung pada data dan lebih lambat masih dimuat.

renderToReadableStream dengan bootstrapScripts

Meneruskan bootstrapScripts ke renderToReadableStream memberi tahu React lokasi bundel JS sisi klien. React menyisipkan tag skrip di akhir aliran agar browser memuat bundel dan memanggil hydrateRoot, sehingga halaman menjadi interaktif saat setiap bagian selesai dialirkan.

Batas Suspense dalam Pohon

Pengaliran React mengandalkan batas Suspense untuk membagi pohon komponen menjadi bagian-bagian yang dapat dialirkan secara terpisah. Komponen di dalam batas Suspense yang menunggu data (melalui Promise yang dilemparkan) dialirkan terlebih dahulu sebagai konten sementara, lalu diselesaikan dan konten sebenarnya dialirkan kemudian.

onShellReady: Kapan Memulai Pengaliran

Fungsi panggilan balik onShellReady dipanggil ketika kerangka HTML yang tidak ditangguhkan — segala sesuatu di luar batas Suspense — siap dialirkan. Inilah saat yang tepat untuk menetapkan kode status HTTP dan header respons, lalu memanggil pipe(res) atau mulai membaca dari ReadableStream.

Mengapa Kode Status Harus Ditetapkan Terlebih Dahulu

Kode status dan header HTTP harus dikirim sebelum isi respons dimulai. Karena pengaliran dimulai dengan onShellReady, logika penanganan kesalahan apa pun (menetapkan status 500 atau mengarahkan ulang) harus berlangsung sebelum kerangka mulai dialirkan — setelah pengaliran dimulai, kode status terkunci.

Penanganan Kesalahan: onShellError

onShellError dipanggil ketika terjadi kesalahan fatal sebelum kerangka siap — misalnya, kesalahan pada komponen tingkat atas di luar batas Suspense. Dalam kasus ini, kerangka tidak pernah dialirkan, dan Anda harus merespons dengan halaman kesalahan statis atau mengarahkan ulang ke rute kesalahan.

Penanganan Kesalahan: onError

onError dipanggil untuk kesalahan yang dapat dipulihkan di dalam batas Suspense. React masih dapat mengalirkan sisa halaman; batas yang mengalami kesalahan merender UI cadangan kesalahannya. Gunakan onError untuk pencatatan: catat kesalahan pada platform observabilitas Anda tanpa membatalkan aliran.

Peningkatan Progresif dan Batas Waktu

Jika data pada batas Suspense memerlukan waktu terlalu lama, tetap alirkan kerangka dan biarkan batas tersebut dihidrasi di klien. Terapkan batas waktu: setelah 5 detik, panggil abort() pada aliran jika batas tersebut belum terselesaikan, dan klien akan mengambil datanya sendiri melalui useEffect.

Mekanisme Streaming Cloudflare Workers

Waktu proses Workers meneruskan ReadableStream secara langsung sebagai isi Response. Infrastruktur Cloudflare meneruskan setiap bagian ke peramban pengguna saat React menghasilkannya, tanpa menyangga seluruh dokumen. Artinya, byte pertama HTML meninggalkan PoP edge dalam hitungan milidetik setelah permintaan tiba.

Pembatalan: Mengendalikan Aliran Panjang

renderToReadableStream mengembalikan fungsi pengontrol pembatalan. Jika permintaan dibatalkan (pengguna berpindah halaman), pemanggilan abort() menghentikan React agar tidak terus merender dan memproses data. Hal ini mencegah perhitungan yang terbuang pada permintaan yang sudah tidak diperlukan dan menjaga penggunaan CPU Worker tetap terbatas.

Profil Latensi Ujung ke Ujung

Dengan streaming di edge, seluruh rangkaian latensi terlihat seperti ini: 5 md (permintaan ke PoP terdekat) + 2 md (inisialisasi dingin Worker) + 8 md (rendering kerangka) = 15 md hingga byte pertama. Peramban pengguna merender elemen LCP dari kerangka sementara bagian halaman lainnya terus dialirkan di latar belakang.

Waktu Pemanggilan onShellReady

Kapan tepatnya panggilan balik onShellReady dijalankan selama streaming SSR?

Ringkasan Pelajaran

Streaming SSR dari edge mengirimkan HTML dalam beberapa bagian, sehingga meningkatkan FCP dan LCP dengan mengirimkan kerangka secara langsung. Batas Suspense membagi pohon menjadi bagian-bagian yang dapat dialirkan secara mandiri. onShellReady adalah sinyal untuk mulai menyalurkan data — tetapkan kode status sebelum memanggilnya. onShellError menangani kegagalan fatal, onError menangani kegagalan yang dapat dipulihkan, dan abort() mencegah pekerjaan yang terbuang pada permintaan yang dibatalkan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “SSR Streaming dari Edge” gratis?

Ya — teks lengkap “SSR Streaming dari Edge” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “SSR Streaming dari Edge”?

Alirkan keluaran HTML React menggunakan ReadableStream agar peramban dapat segera menampilkan konten yang bermakna. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “SSR Streaming dari Edge” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu Perenderan Edge dan Mengapa Penting
  2. React di Cloudflare Workers dengan Hono
  3. SSR Streaming dari Edge
  4. Strategi Caching Edge untuk Aplikasi React
← Kembali ke React Academy