Sanyanggae LogoSanyanggae

💻 Web ve ön yüz geliştirme

Astro sunucu adaları: statik sayfada yalnızca gereken bölümleri gecikmeli işlemek

server:defer işleyişini, sunucu adaptörünün ve fallback içeriğinin rolünü inceleyip uygulama öncesi kontrolleri düzenliyoruz.

사냥개 (Sanyanggae)Yayımlanma Güncelleme 10 dakika

Bu, Korece özgün metnin çevirisidir. Korece özgün metin · Çeviri incelemesi: Yapay zekâ incelemesi

Astro sunucu adaları: statik sayfada yalnızca gereken bölümleri gecikmeli işlemek: İlk HTML, Sunucu adaları, fallback ve yanıt konularını düzenleyen açıklayıcı şema
Sanyanggae tarafından hazırlanan açıklayıcı şema · İlk HTML · Sunucu adaları · fallback ve yanıt.

Ürün açıklaması bütün ziyaretçiler için aynıdır; ancak oturum açan kişiye gösterilecek teslimat adresi farklı olabilir. Adres sorgusu yavaşsa ürün açıklamasını da bekletmek gerekir mi? Bu yazıda hayalî bir kitap satış sayfasıyla ortak ana içerik ve kullanıcıya özgü alanları ayırma kararını inceliyoruz. Anlatılan özellik, Astro’nun sunucu adalarıdır; tarayıcıda düğmeleri çalıştıran istemci adalarından farklı görev üstlenir.

1. İlk belgeyi sonradan gelen alandan ayırmak

Astro’nun resmî sunucu adaları belgesi, belirli bir bileşenin sunucuda işlenmesini geciktirip sonucunu ayrı istekle alma yöntemini açıklar. İlk HTML, temel içeriği ve bekleme gösterimini içerir; ayrı yanıt geldiğinde ilgili alan değiştirilir. Bunun için sunucuda istek işleyen bir adaptör gerekir.

Kitap satış sayfasında başlık, yazar ve tanıtımı ortak belgede bırakıp yalnızca adres özetini aday seçelim. Ziyaretçi adresi beklerken de kitabın ne olduğunu okuyabilir. Buna karşılık ödeme düğmesini anlamak için sipariş toplamını görmesi gerekiyorsa fiyat ile ödeme eylemi arasındaki ilişki de tasarlanmalıdır. Görünen öğeleri küçük kutulara bölmek, işlevsel ayrımı tek başına tamamlamaz.

Bu tasarımın başarısını önce neyin gösterildiği belirler. Ana içeriği neredeyse boş bırakıp çoğunu geciktirmek, ziyaretçiyi birçok yükleme göstergesini beklemeye zorlar. Önce ilk ekranda yanıtlanacak sorularla geç gelebilecek bilgileri listeleyin. Sunucu adaları beklemenin yerini değiştiren bir araçtır; veritabanı sorgusunu kendiliğinden hızlandırmaz.

2. fallback içeriğini de bitmiş ekranın parçası olarak tasarlamak

Aşağıdaki küçük örnek kullanım biçimini gösterir. UserDelivery bileşeni ve adaptörün ayrıca uygulanmış olduğu varsayılır.

---
import UserDelivery from '../components/UserDelivery.astro';
---
<UserDelivery server:defer>
  <p slot="fallback">Teslimat adresi bilgileri kontrol ediliyor.</p>
</UserDelivery>

fallback, kısaca görünüp kaybolan bir süs değil, ziyaretçinin gerçekten okuduğu ilk içeriktir. Adres kartının son boyutuna benzer alan ayırın ve neyin beklendiğini açıklayın. Henüz bilgi yokken önceden “Teslimat yapılabilir” yazmak, gerçek yanıtla anlam çatışmasına yol açabilir. Bilinmeyen durum ile doğrulanmış sonuç görsel olarak da ayrılmalıdır.

Örneğin oturum açmamış ziyaretçiye “Kaydedilmiş teslimat adresinizi görmek için oturum açın” açıklaması gerekebilir. Ağın yavaş olmasıyla oturum açılmamış olması farklı durumlardır. Her birinin metnini ve gidilecek yolunu ayrı belirlemek, geliştirmede kolaylık için yazılan cümlenin canlı ekranda kalmasını azaltır.

3. Veri sınırını küçük tutmak

Bileşeni çağırırken yalnızca gösterim ve sorgu için gerekli değerleri aktarın. Bütün sipariş geçmişini geçirip yalnızca tek ad yazdırıyorsanız önce veri bağımlılığını azaltma fırsatı vardır. Bazı değerler genel içerikte bulunabilir; bazıları ancak kullanıcı doğrulamasından sonra sorgulanmalıdır. Değerin aktarıldığı yolu ve ekranda gösterildiği kapsamı aynı listede kontrol edin.

Sunucu adasının isteği ayrı bir yürütme bağlamındadır. Mantık mevcut sayfa adresini gerektiriyorsa gereken yolu asıl sayfadan açıkça aktarmayı değerlendirin. Ada içindeki istek URL’sini asıl ürün sayfası URL’si sanmak, sayfaya özgü öneri veya geri dönüş bağlantısını yanlış oluşturabilir. Uygulamada gerçek istek adresini geliştirici araçlarında doğrulamak daha güvenlidir.

Kitap numarasıyla kullanıcı tanımlama bilgisini işleyen hayalî bir örnek düşünülebilir. Kitap numarasını ortak öneri verisini sorgulamakta, kullanıcı bilgisini ise sunucuda kimlik doğrulama durumuna göre işlemekte kullanarak görevleri ayırın. Şifreli aktarım biçimi de sunucudaki yetki kontrolünün yerini tutmaz. Girdinin alındığı konumla son erişim kararının verildiği konumu ayrı belgeleyin.

4. Önbelleği ekranın hedef kitlesine göre belirlemek

Ortak kitap tanıtımıyla kişisel teslimat adresine aynı önbellek politikasını uygulamak zordur. MDN’nin HTTP önbelleği rehberi, paylaşılan ve kişisel önbellek ayrımını açıklar. Önce verinin aynı olup olmadığından çok yanıtın herkese gösterilip gösterilemeyeceğine karar verin.

İki test hesabıyla aynı sayfayı açıp ilk hesabın adresinin ikinci hesapta görünmediğini kontrol edin. Oturumu kapattıktan sonra geri gitme ve yenileme davranışını da inceleyin. Bu kontrol, önbellek sunucusu, tarayıcı ve uygulamanın kimlik doğrulamasının birlikte ürettiği sonucu değerlendirir. Yalnızca bileşen dosyasını okuyup güvenli olduğu sonucuna varılamaz.

Ortak kitap önerileri gibi paylaşılabilir bölümlerde de içerik değişince güncelleme yolu gerekir. Eski önerinin kısa süre kabul edilip edilmeyeceğini veya yönetici düzenlediğinde hemen değişip değişmeyeceğini belirleyin. “Önbelleği açıyoruz” demek yerine hedefi, saklama konumunu, kabul edilen eskiliği ve geçersiz kılma koşullarını yazmak, başka geliştiricilerin tasarımı incelemesini kolaylaştırır.

5. Önce yavaş bağlantı ve başarısızlığı sınamak

Sayfayı normal bağlantıda bir kez açarak değerlendirmeyin. Adres isteğini geciktirin, başarısız kılın, oturum durumunu değiştirin ve her ekranı inceleyin. Temel içerik okunabiliyor mu, yükleme alanı sonraki düğmeyi sürekli itiyor mu ve başarısız bilgiye bağımlı işlemler yapılabiliyor mu, kontrol edin.

Sınama durumuZiyaretçinin anlaması gereken durum
Adres sorgusu yavaşNe bekleniyor ve başka içerik okunabilir mi?
Kimlik doğrulanmamışOturum açma açıklaması ve ortak içerik görünüyor mu?
Sorgu başarısızBoş ekran yerine toparlanma yolu bulunabiliyor mu?
Hesap değişmişÖnceki kullanıcının bilgisi kalıyor mu?

Birden çok ada birbirinin sonucunu bekliyorsa ayırma biçimini yeniden inceleyin. Önce adresi alıp sonra kargo ücretini sorgulamak ve ardından ödeme açıklamasını çizmek, ardışık bekleme istekleri oluşturabilir. Bu durumda ilgili bilgileri tek sunucu işi içinde toplamak veya kullanıcının istediği anda sorgulamak daha uygun olabilir. Ayrım sayısının çokluğu tek başına iyi yapı anlamına gelmez.

6. Önceki ve sonraki kazancı aynı koşullarda karşılaştırmak

Karşılaştırma kaydında ilk ana içeriğin görünmesini, adres gösteriminin tamamlanmasını, işlem yapılabilir zamanı ve hata durumlarını ayrı yazın. İlk belge hızlı görünse de adres kartı çok kayıyorsa veya ödemeye başlama gecikiyorsa ziyaretçi deneyimi başka yönde değişebilir. Tek ortalama yerine yavaş örneklerde neyin beklendiğini de kaydedin.

Sunucu adası adayını seçerken sorunun somutluğu yararlıdır. “Bu site statik mi?” yerine “Bu bilgi gecikse de kitap tanıtımı önce okunabilir mi?” uygulama kararına daha çok yardım eder. Astro’nun isteğe bağlı işleme rehberi ile dağıtım ortamını kontrol edin; küçük bir kullanıcıya özgü alanla başlayıp gerçek başarısızlık durumlarına kadar sınayın.

Kanıtlar ve kaynaklar

Bu yazı kamuya açık kaynaklara dayanır. Bir kuruluşun kaynak gösterilmesi, yazıyı incelediği veya onayladığı anlamına gelmez.

Yayıncı hakkında ve iletişim

Aynı konudaki diğer yazılar