SORU
18 HAZİRAN 2009, PERŞEMBE


AJAX beklenmedik Önbellekleme IE8 sonuçları

JQuery Ajax isteği, Internet Explorer önbelleği sonuçları ile ciddi bir sorun yaşıyorum.

Bir kullanıcı yeni bir sayfaya gider her zaman güncellenir web sayfamda başlık var. Sayfa yüklendikten sonra bu yaptığım

$.get("/game/getpuzzleinfo", null, function(data, status) {
    var content = "<h1>Wikipedia Maze</h1>";
    content  = "<p class='endtopic'>Looking for <span><a title='Opens the topic you are looking for in a separate tab or window' href='"   data.EndTopicUrl   "' target='_blank'>"   data.EndTopic   "<a/></span></p>";
    content  = "<p class='step'>Step <span>"   data.StepCount   "</span></p>";
    content  = "<p class='level'>Level <span>"   data.PuzzleLevel.toString()   "</span></p>";
    content  = "<p class='startover'><a href='/game/start/"   data.PuzzleId.toString()   "'>Start Over</a></p>";

    $("#wikiheader").append(content);

}, "json");

Sadece sayfa Başlığı içine bilgi enjekte ediyor. 9 ** ve sonra oturum ve yeni bir bulmaca başlatarak kontrol edebilirsiniz.

Test ettim her tarayıcı (Google Chrome, Firefox, Safari, Internet Explorer) harika çalışıyorhariçIE. YANİ her şeyi çok iyi enjekte alırilk kezama hiç bir zaman /game/getpuzzleinfo çağrı yapar sonra. Sonuçları falan önbelleğe var gibi.

Eğer değiştirirsem $.post("/game/getpuzzleinfo", ... IE sesi gayet iyi alıyor. Ama sonra Firefox çalışmayı bırakıyor.

Biri IE $.get ajax telefonlarıma önbellekleme niçin bu biraz aydınlatabilir misiniz?

GÜNCELLEME

Öneri aşağıda başına, benim sorunum sabit olan bu, ajax isteğimi değiştirdim:

$.ajax({
    type: "GET",
    url: "/game/getpuzzleinfo",
    dataType: "json",
    cache: false,
    success: function(data) { ... }
});

CEVAP
18 HAZİRAN 2009, PERŞEMBE


IE Ajax yanıtları onun agresif önbellekleme tanınıyor. JQuery kullanıyorsanız, küresel bir seçeneği ayarlayabilirsiniz:

$.ajaxSetup({
    cache: false
});

string sorgu istemek için rastgele bir değer katmak için DV böylece yanıt önbelleğe alınan IE engelleyen neden olacak.

Eğer diğer Ajax aramaları önbelleğe istediğiniz yerdeki varsa, o da devre dışı bırakır unutmayın. Bu durumda, kullanarak geçiş $.() ajax yöntemi ve bu seçeneği açıkça gerekli istekleri için etkinleştirin.

Daha fazla bilgi için http://docs.jquery.com/Ajax/jQuery.ajaxSetup bkz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • DavidParody

    DavidParody

    17 EKİM 2009
  • Marques Brownlee

    Marques Brow

    21 Mart 2008