Kenar Üzerinden Akışlı SSR
Tarayıcının anlamlı içeriği hemen görüntüleyebilmesi için React'in HTML çıktısını ReadableStream kullanarak akış halinde gönderin.
Kenar Üzerinden Akışlı SSR, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Akışın Avantajı
Bir sunucu HTML'yi akışla gönderdiğinde tarayıcı, belgenin tamamını beklemek yerine içeriği parçalar halinde alır ve oluşturur. Böylece kullanıcılar sayfanın üst bilgi, gezinme ve ana tanıtım bölümü gibi görünür kısımlarını, veriye bağlı daha yavaş bölümler hâlâ yüklenirken görebilir ve bu kısımlarla etkileşime geçebilir.
bootstrapScripts ile renderToReadableStream
bootstrapScripts'i renderToReadableStream'e geçirmek, React'e istemci tarafındaki JS paketinin nerede bulunduğunu bildirir. React, tarayıcının paketi yükleyip hydrateRoot'u çağırabilmesi için akışın sonuna bir betik etiketi ekler; böylece her bölümün akışla gönderilmesi tamamlandıkça sayfa etkileşimli hale gelir.
Ağaçtaki Suspense Sınırları
React'in akış özelliği, bileşen ağacını bağımsız olarak akışa alınabilen bölümlere ayırmak için Suspense sınırlarına dayanır. Bir Suspense sınırı içinde veri bekleyen bileşenler (fırlatılan bir Promise aracılığıyla) önce yer tutucu olarak gönderilir, ardından çözümlenerek gerçek içeriklerini gönderir.
onShellReady: Akışa Ne Zaman Başlamalı
onShellReady geri çağırma işlevi, askıya alınmamış HTML kabuğu — Suspense sınırlarının dışındaki her şey — akışa hazır olduğunda tetiklenir. HTTP durum kodunu ve yanıt başlıklarını ayarlayıp ardından pipe(res) çağrısı yapmanın veya ReadableStream'den okumaya başlamanın doğru anı budur.
Durum Kodları Neden Önce Ayarlanmalı?
HTTP durum kodları ve başlıkları, yanıt gövdesi başlamadan önce gönderilmelidir. Akış onShellReady ile başladığı için tüm hata işleme mantığı (durum kodunu 500 olarak ayarlama, yönlendirme), kabuk akmaya başlamadan önce gerçekleşmelidir — akış başladıktan sonra durum kodu sabitlenir.
Hata İşleme: onShellError
onShellError, kabuk hazır olmadan önce kritik bir hata oluştuğunda tetiklenir — örneğin Suspense sınırlarının dışındaki üst düzey bir bileşende hata oluştuğunda. Bu durumda kabuk hiç akışa alınmaz; statik bir hata sayfasıyla yanıt vermeli veya bir hata rotasına yönlendirmelisiniz.
Hata İşleme: onError
onError, Suspense sınırları içindeki kurtarılabilir hatalarda tetiklenir. React yine de sayfanın geri kalanını akışa alabilir; hata oluşan sınır, hata için yedek kullanıcı arayüzünü oluşturur. onError'ı günlük kaydı için kullanın: akışı durdurmadan hatayı gözlemlenebilirlik platformunuza kaydedin.
Aşamalı İyileştirme ve Zaman Aşımları
Bir Suspense sınırının verilerinin gelmesi çok uzun sürüyorsa kabuk içeriğini yine de akışa verin ve sınırın istemci tarafında etkinleştirilmesine izin verin. Bir zaman aşımı uygulayın: 5 saniye sonra, sınır çözümlenmemişse akış üzerinde abort() çağrısı yapın; istemci de verileri useEffect aracılığıyla kendisi alır.
Cloudflare Workers Akış Mekanizmaları
Workers çalışma zamanı, ReadableStream'i doğrudan Response gövdesi olarak aktarır. Cloudflare altyapısı, belgenin tamamını arabelleğe almadan, React ürettikçe her parçayı kullanıcının tarayıcısına iletir. Bu, HTML'nin ilk baytlarının istek ulaştıktan sonra milisaniyeler içinde uç PoP'tan çıkması anlamına gelir.
İptal: Uzun Akışları Denetleme
renderToReadableStream bir iptal denetleyicisi işlevi döndürür. İstek iptal edilirse (kullanıcı başka bir sayfaya giderse) abort() çağrısı yapmak, React'in işlemeyi ve verileri işlemeye devam etmesini durdurur. Bu, artık sahibi olmayan istekler için boşa hesaplama yapılmasını önler ve Worker CPU kullanımını sınırlar.
Uçtan Uca Gecikme Profili
Uçtan akış kullanıldığında tam gecikme zinciri şöyledir: 5 ms (istekten en yakın PoP'a) + 2 ms (Worker'ın soğuk başlatılması) + 8 ms (kabuk oluşturma) = ilk bayta kadar 15 ms. Kullanıcının tarayıcısı, sayfanın geri kalanı arka planda akmaya devam ederken kabuktaki LCP öğesini oluşturur.
onShellReady Zamanlaması
onShellReady geri çağırma işlevi, akış üzerinden SSR sırasında tam olarak ne zaman çalışır?
Ders Özeti
Uçtan akışla SSR, HTML'yi parçalar hâlinde ileterek kabuğu hemen gönderir ve FCP ile LCP'yi iyileştirir. Suspense sınırları, ağaç yapısını bağımsız olarak akışa verilebilen bölümlere ayırır. onShellReady, akışı başlatma sinyalidir — bunu çağırmadan önce durum kodlarını ayarlayın. onShellError kurtarılamayan hataları, onError kurtarılabilir hataları ele alır; abort() ise iptal edilen isteklerde boşa çalışma yapılmasını önler.
Sıkça Sorulan Sorular
“Kenar Üzerinden Akışlı SSR” dersi ücretsiz mi?
Evet — “Kenar Üzerinden Akışlı SSR” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“Kenar Üzerinden Akışlı SSR” dersinde ne öğreneceğim?
Tarayıcının anlamlı içeriği hemen görüntüleyebilmesi için React'in HTML çıktısını ReadableStream kullanarak akış halinde gönderin. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Kenar Üzerinden Akışlı SSR” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Kenar Görüntüleme Nedir ve Neden Önemlidir
- Hono ile Cloudflare Workers'ta React
- Kenar Üzerinden Akışlı SSR
- React Uygulamaları için Kenar Önbellekleme Stratejileri