Takip et

jQuery ve Javascript’te Cache(Önbelleğe Alma) İşlemini Durdurmak

Bildiğiniz üzere browser cache’leri web mimarilerini hızlandırmak için kullanılır. Fakat bu durum yazılım geliştiriciler için bir süre sonra çileden çıkarıcı bir durum olabilir. Özellikle tarayıcıda en son sürümü görüntülenecek dinamik bir içerikle uğraşırken. Bununla birlikte, güvenlik sebebiyle, javascript içinde tüm tarayıcılar için önbelleğe almayı devre dışı bırakabilecek mükemmel yöntemler yoktur. Bu yazıda, javascript’in ve jQuery’nin tarayıcılar tarafından önbelleğe almasını (cache) durdurmak veya devre dışı bırakmak için kullandığım birkaç yöntemi göstereceğim.

jQuery

jQuery v1.2’nin sonraki sürümünde, jQuery ajax sınıfıyla tarayıcı ile önbelleğe almayı durdurmak için bir yöntem sunulmuştur. V1.2’deki güncelleme listesini görmek için jQuery web sitesini ziyaret edebilirsiniz. v1.2 dökümantasyonlarda önbelleğe almayı devre dışı bırakacak bir fonksiyon içerdiğini göreceksiniz. Her bir dinamik içeriğin önbellekte saklanma şeklini true / false olarak ayarlayarak tüm tarayıcı cache’ini devre dışı bırakmak üzere bir varsayılan ayar görebilirsiniz.

Her bir ajax istek önbellek özelliklerini belirlemek için,

$.ajax({
url: 'index.html',
cache: false,
success: function(html){
$('#results').append(html);
}
});

jQuery örneğini yansıtmaktadır. Ve tarayıcıyı kullanarak cache’i devre dışı bırakmak için aşağıdaki fonksiyonu kullanabiliriz:

$.ajaxSetup({cache: false}});

Javascript

Tarayıcıların belirli bir dosyayı önbelleğe alabilmelerinin nedeni, tarayıcıya geçirilen url’lerin aynı olması nedeniyledir. Her geçerlilik için onu benzersiz kılmak için, aşağıda gösterildiği gibi url’nin sonuna rasgele bir sayı ekleyebiliriz,

var img.src = 'www.fatihsoysal.com'+'?'+Math.random()*Math.random();
return $(img).load(function()
{
alert('completed!');
});

Bu yöntem, tüm dosyaların, tarayıcıya attığınız her dinamik geçiş için benzersiz olmasını sağlar; tarayıcının her seferinde güncel dosyayı çekmesine olanak sağlayacaktır. Bu yöntemi tarayıcının neredeyse tamamının dinamik içeriği alma şeklini destekleyeceği için daha güvenilir ve kullanışlı buluyorum.

Bonus: HTML

Aşağıdaki meta etiketi kullanarak önbelleklemeyi de devre dışı bırakabilir veya durdurabilirsiniz,

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

Bu yöntem, tüm sayfanın tarayıcı tarafından da önbelleğe alınmasını önleyecektir.

Bir sonraki makalede görüşmek üzere, sağlıkla, huzurla kalın.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorumları Göster (2)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version