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

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • PUSHER

    PUSHER

    11 HAZİRAN 2014