Verileri Yeniden Doğrulama (Revalidating)
Next.js, sitenizin tamamını yeniden oluşturmanıza gerek kalmadan belirli statik rotaları güncellemenizi sağlar. Revalidation (Incremental Static Regeneration olarak da bilinir), milyonlarca sayfaya ölçeklenirken statik avantajlarını korumanıza olanak tanır.
Next.js'de iki tür yeniden doğrulama vardır:
Arka plan: Verileri belirli bir zaman aralığında yeniden doğrular.
İsteğe bağlı: Güncelleme gibi bir olaya bağlı olarak verileri yeniden doğrular.
Arka Plan Revalidasyonu (Background Revalidation)
Önbelleğe alınan verileri belirli bir aralıkta yeniden doğrulamak için fetch()
işlevinde next.revalidate
seçeneğini kullanarak bir kaynağın cache
ömrünü (saniye cinsinden) ayarlayabilirsiniz.
fetch
kullanmayan verileri yeniden doğrulamak istiyorsanız (yani harici bir paket veya sorgu oluşturucu kullanarak), rota segmenti yapılandırmasını kullanabilirsiniz.
Nasıl çalışır?
Derleme sırasında statik olarak işlenmiş olan rotaya bir istek yapıldığında, başlangıçta önbelleğe alınmış veriler gösterilir.
İlk istekten sonra ve 60 saniyeden önce rotaya yapılan tüm istekler de önbelleğe alınır ve anlık olarak gösterilir.
60 saniyelik pencereden sonra, bir sonraki istek hala önbelleğe alınmış (eski) verileri gösterecektir.
Next.js arka planda verilerin yenilenmesini tetikleyecektir.
Rota başarıyla oluşturulduktan sonra Next.js önbelleği geçersiz kılacak ve güncellenmiş rotayı gösterecektir. Arka planda yenileme başarısız olursa, eski veriler hala değiştirilmemiş olacaktır.
Oluşturulmamış bir rota segmentine bir istek yapıldığında, Next.js ilk istekte rotayı dinamik olarak oluşturacaktır. Daha sonraki istekler önbellekten statik rota segmentlerini sunacaktır.
Bilmekte fayda var: Yukarı akış veri sağlayıcınızda önbelleğin varsayılan olarak etkin olup olmadığını kontrol edin. Devre dışı bırakmanız gerekebilir (örn. useCdn: false
), aksi takdirde bir yeniden doğrulama ISR önbelleğini güncellemek için yeni verileri çekemez. Önbellekleme, Cache-Control
başlığını döndürdüğünde bir CDN'de (talep edilen bir uç nokta için) gerçekleşebilir. Vercel üzerindeki ISR önbelleği global olarak sürdürür ve geri alma işlemlerini gerçekleştirir.
İsteğe Bağlı Yeniden Doğrulama (On-Demand Revalidation)
revalidate
süresini 60
olarak ayarlarsanız, tüm ziyaretçiler sitenizin oluşturulan aynı sürümünü bir dakika boyunca görür. Önbelleği geçersiz kılmanın tek yolu, bir dakika geçtikten sonra birinin sayfayı ziyaret etmesidir.
Next.js Uygulama Yönlendiricisi, bir rota veya önbellek etiketine dayalı olarak içeriğin isteğe bağlı olarak yeniden doğrulanmasını destekler. Bu, belirli getirmeler için Next.js önbelleğini manuel olarak temizlemenize olanak tanıyarak sitenizi ne zaman güncelleyeceğinizi kolaylaştırır:
Başlıksız CMS'nizden içerik oluşturulur veya güncellenir.
E-ticaret meta verileri değişir (fiyat, açıklama, kategori, yorumlar vb.).
İsteğe Bağlı Yeniden Doğrulama Kullanımı (Using On-Demand Revalidation)
Veriler isteğe bağlı olarak yola (revalidatePath
) veya önbellek etiketine (revalidateTag
) göre yeniden doğrulanabilir.
Örneğin, aşağıdaki fetch
işlemi önbellek etiket koleksiyonunu
ekler:
Önbelleğe alınan bu veriler daha sonra bir Rota İşleyicide revalidateTag
çağrısı yapılarak talep üzerine yeniden doğrulanabilir.
Hata İşleme ve Yeniden Doğrulama
Verileri yeniden doğrulamaya çalışırken bir hata atılırsa, başarıyla oluşturulan son veriler önbellekten sunulmaya devam eder. Sonraki bir sonraki istekte, Next.js verileri yeniden doğrulamayı yeniden deneyecektir.
Last updated