AJAX ve Cache Sorunu
Gön: Tamer Görgü
Daron bey,
blogunuzun takipçisiyim, öncelikle bu tür bir hizmet verdiğiniz için çok teşekkür ederim.
Bir sorunum var çok uğraşmama rağmen çözemedim, sanırım bir bug var 2008 express editionda.
Visual Studio 2003 ile yazdığım aspx sayfada, sayfanın bilgiyi her seferinde server den alması için
Response.Expires = 0;
Komutunu kullanmam yeterli idi.
Ancak şu anda C# 2008 express edition ile geliştirdiğim aspx sayfada bu komut işe yaramadı. Bu arada internet explorer 7 kullanıyorm.
Denediğim komutlar şunlar.
Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now.AddSeconds(1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetValidUntilExpires(false);
Response.Expires = -1;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.CacheControl = "no-cache";
Bunların hiçbiri işe yaramadı, sayfa içine
<%@ Page AsyncTimeout="0" işe yaramadı
<%@ OutputCache Duration="1" VaryByParam="None" %> işe yaramadı.
İşin ilginci, her komutu denediğimide önce işe yarıyor, ertesi gün baktığımda çalışmadığını görüyorum.
Response.Expires = -1; kullandım mesela,
bugün serverden alıyor, ertesi gün yine cache den almaya başlıyor.
Yeni bir komut daha deniyorum yine serverden alıyor, bilgisayarı kapa aç cache den alıyor. Kalıcı olarak çözemedim. Sorun ie7'den kaynaklanıyor belkide. ie7 türkçe gösterdiği bir sayfayı, tekrar yüklediğimde türkçesi bozuk gösterebiliyor. Onun gibi bişey olmalı. Bilgiyi her seferinde serverden almam şart. Bir xml dosyayı javascript ile belli aralıklarla okutuyorum. xml dosya içeriği değiştiği halde, maalesef eski bilgi geliyor.
Ne yapabilirim acaba.
Saygılarımla Tamer Görgü.
Gön: Daron Yöndem
Merhabalar,
Blogun faydalı olmasına sevindim.
JavaScript ile okuma yaptırırken asenkron olarak adresin sonuna gereksiz bir random değişken yerleştirin.
Örneğin: www.ahmet.com/veri.xmll?ID=4
Burada 4’ün yerine javascript ile random sayı üretip koyun. Böylece sürekli adres değişiyor zannedecektir Explorer.
Aslında bahsettiğiniz sorunların olmaması gerekir, sizin istemcide de sorun var gibi.