SSR Penstriman dari Pinggir
Strim output HTML React menggunakan ReadableStream supaya pelayar dapat memaparkan kandungan bermakna dengan serta-merta.
SSR Penstriman dari Pinggir ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Kelebihan Penstriman
Apabila pelayan menstrim HTML, pelayar menerima dan memaparkan kandungan secara berperingkat dan bukannya menunggu dokumen lengkap. Ini bermakna pengguna boleh melihat dan berinteraksi dengan bahagian halaman yang kelihatan — pengepala, navigasi dan bahagian utama — sementara bahagian yang bergantung pada data dan lebih perlahan masih dimuatkan.
renderToReadableStream dengan bootstrapScripts
Menghantar bootstrapScripts kepada renderToReadableStream memberitahu React lokasi himpunan JS sisi klien. React memasukkan tag skrip pada penghujung strim supaya pelayar memuatkan himpunan itu dan memanggil hydrateRoot, lalu menjadikan halaman interaktif apabila setiap bahagian selesai distrimkan.
Sempadan Suspense dalam Pepohon
Penstriman React bergantung pada sempadan Suspense untuk membahagikan pepohon komponen kepada bahagian yang boleh distrimkan secara berasingan. Komponen di dalam sempadan Suspense yang sedang menunggu data (melalui Promise yang dilemparkan) distrimkan sebagai ruang letak terlebih dahulu, kemudian diselesaikan dan kandungan sebenar distrimkan selepas itu.
onShellReady: Bila Penstriman Bermula
Panggilan balik onShellReady dicetuskan apabila shell HTML yang tidak ditangguhkan — segala-galanya di luar sempadan Suspense — sedia untuk distrimkan. Inilah masa yang tepat untuk menetapkan kod status HTTP dan pengepala tindak balas, kemudian memanggil pipe(res) atau mula membaca daripada ReadableStream.
Mengapa Kod Status Mesti Ditetapkan Dahulu
Kod status dan pengepala HTTP mesti dihantar sebelum isi tindak balas bermula. Oleh sebab penstriman bermula dengan onShellReady, sebarang logik pengendalian ralat (menetapkan status 500 atau mengubah hala) mesti berlaku sebelum shell mula mengalir — sebaik sahaja penstriman bermula, kod status tidak lagi boleh diubah.
Pengendalian Ralat: onShellError
onShellError dicetuskan apabila ralat maut berlaku sebelum shell sedia — contohnya, ralat dalam komponen peringkat teratas di luar mana-mana sempadan Suspense. Dalam keadaan ini, shell tidak pernah distrimkan dan Anda harus memberikan respons dengan halaman ralat statik atau mengubah hala ke laluan ralat.
Pengendalian Ralat: onError
onError dicetuskan untuk ralat yang boleh dipulihkan dalam sempadan Suspense. React masih boleh menstrim seluruh halaman; sempadan yang mengalami ralat memaparkan antara muka pengguna sandaran ralatnya. Gunakan onError untuk pengelogan: tangkap ralat itu kepada platform pemerhatian Anda tanpa menghentikan strim.
Peningkatan Progresif dan Tamat Masa
Jika data sempadan Suspense mengambil masa terlalu lama, strimkan rangka juga dan biarkan sempadan itu dihidratkan pada klien. Laksanakan tamat masa: selepas 5 saat, panggil abort() pada strim jika sempadan itu belum diselesaikan, dan klien akan mendapatkan data itu sendiri melalui useEffect.
Mekanisme Penstriman Cloudflare Workers
Persekitaran masa jalan Workers meneruskan ReadableStream secara terus sebagai badan Response. Infrastruktur Cloudflare memajukan setiap cebisan ke pelayar pengguna apabila React menghasilkannya, tanpa menyimpan keseluruhan dokumen dalam penimbal. Ini bermakna bait pertama HTML meninggalkan PoP pinggir dalam masa beberapa milisaat selepas permintaan tiba.
Pembatalan: Mengawal Strim Panjang
renderToReadableStream mengembalikan fungsi pengawal pembatalan. Jika permintaan dibatalkan (pengguna beralih dari halaman), memanggil abort() menghentikan React daripada meneruskan pemaparan dan pemprosesan data. Ini mengelakkan pengiraan yang dibazirkan untuk permintaan yatim dan memastikan penggunaan CPU Workers kekal terkawal.
Profil Kependaman Hujung ke Hujung
Dengan penstriman di pinggir, rantaian penuh kependaman kelihatan begini: 5ms (permintaan ke PoP terdekat) + 2ms (permulaan sejuk Worker) + 8ms (pemaparan rangka) = 15ms hingga bait pertama. Pelayar pengguna memaparkan elemen LCP daripada rangka sementara bahagian halaman yang selebihnya terus distrim di latar belakang.
Masa onShellReady
Bilakah tepatnya fungsi panggil balik onShellReady dicetuskan semasa SSR penstriman?
Ringkasan Pelajaran
SSR penstriman dari pinggir menghantar HTML dalam cebisan, lalu meningkatkan FCP dan LCP dengan menghantar rangka serta-merta. Sempadan Suspense membahagikan pepohon kepada bahagian yang boleh distrim secara berasingan. onShellReady ialah isyarat untuk mula menyalurkan data — tetapkan kod status sebelum memanggilnya. onShellError mengendalikan kegagalan kritikal, onError mengendalikan kegagalan yang boleh dipulihkan, dan abort() mengelakkan kerja yang dibazirkan pada permintaan yang dibatalkan.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “SSR Penstriman dari Pinggir” percuma?
Ya — teks penuh “SSR Penstriman dari Pinggir” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “SSR Penstriman dari Pinggir”?
Strim output HTML React menggunakan ReadableStream supaya pelayar dapat memaparkan kandungan bermakna dengan serta-merta. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “SSR Penstriman dari Pinggir” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Apakah Pemaparan Pinggir dan Mengapa Ia Penting
- React pada Cloudflare Workers dengan Hono
- SSR Penstriman dari Pinggir
- Strategi Pencachean Pinggir untuk Aplikasi React