← Tüm blog yazıları
Web

Önbellek hızlandırırken eski görseli neden gösterir?

Yaklaşık 1 dk okuma
Önbellekteki görselle güncel sürümünü karşılaştıran çalışma masası.
Görsel: Bu blog için AI ile üretilmiş kavramsal kapak; gerçek ürün ekran görüntüsü veya kaynak kurumun görseli değildir.

Yeni kapağı yükledin ama bazı ziyaretçiler hâlâ eskisini görüyor. Bu her zaman yüklemenin başarısız olduğu anlamına gelmez. Tarayıcı veya aradaki bir önbellek, daha önce aldığı yanıtı yeniden kullanıyor olabilir. Hız kazanmak için saklanan içerik, doğru güncelleme düzeni olmazsa kafa karıştırır.

Benim için önbelleğin zor tarafı hız kazandırması değil, değişen içeriği doğru zamanda göstermesi. Ziyaretçi yeni kapağı beklerken eski görseli görüyorsa yalnızca hızlı yüklenme yeterli değil. Bu yüzden performansla güncelliği birbirine rakip değil, birlikte tasarlanması gereken iki ihtiyaç olarak görüyorum.

Temel fikir

HTTP önbelleği yanıtların hangi koşullarda saklanıp yeniden kullanılacağını başlıklarla yönetir. no-cache, hiçbir şey saklanmasın demek değildir; yeniden kullanmadan önce doğrulama gerektirir. no-store ise saklamayı engellemeye yönelik farklı bir talimattır. Bu iki kavramı karıştırmamak gerekir.

Bir örnek üzerinden

Portföy kapaklarında sürümlenmiş dosya adları kullanmayı düşün: kapak-v2.jpg gibi yeni bir adres, eski dosyayla karışmayı azaltır. Uygulama üretim süreçleri bunu içerik hash’iyle otomatik yapabilir. HTML ile uzun ömürlü görsellerin aynı önbellek politikasına sahip olması gerekmeyebilir.

Pratik özet — editoryal örnek, ölçüm sonucu değildir.
TerimAnlam
no-cacheYeniden kullanmadan önce doğrulama
no-storeYanıtı saklamama talimatı
Sürümlü dosya adıYeni içeriğe yeni adres

Nereden başlamalı?

Kontrol sırasında hem yeni ziyaretçiyi hem geri dönen ziyaretçiyi dene. Sadece tarayıcıyı sert yenileyerek test etmek gerçek davranışı saklayabilir. Hassas, kişiye özel içeriklerde ise hızdan önce doğru saklama sınırlarını belirle.

Benim yaklaşımım

Bir kapak değiştiğinde önce dosyanın nerede eski kaldığını ayırırım: tarayıcı, dağıtım katmanı veya kullanılan dosya adı. Sorunun kaynağını bilmeden bütün önbelleği kaldırmak istemem. Güncellenen dosyaya açık bir sürüm kimliği vermek, benim için rastgele yenileme tuşuna güvenmekten daha anlaşılır bir yaklaşım.

Kaynaklar

MDN — HTTP caching

Aklına takılan bir şey mi var?

Yazıyla ilgili sorunu veya proje fikrini paylaş.

WhatsApp’tan yaz