2011-07-23 18 views
6

Wygląda na to, że w IE9 użycie jquery .load spowoduje pobranie danych z pamięci podręcznej przeglądarek, więc efekt "w czasie rzeczywistym" zawartości ładującej AJAX nie działa. Czy istnieje jakiś przełącznik, który wymusza ładowanie jquery., Aby dane były świeże?Zapobiegaj ładowaniu JQUERY. Z pamięci podręcznej.

Thansk!

Odpowiedz

10

Opcja wyłączania buforowania jest dostępna w jQuery, jeśli używana jest metoda niskiego poziomu $.ajax. To nie jest reprezentowane w uproszczonym podpisie dla load. Zamiast tego możesz naśladować to, zapewniając, że adres URL jest zawsze unikalny. Można umieścić aktualny czas w milisekundach na końcu adresu URL, aby to osiągnąć, ponieważ to będzie praktycznie zawsze będzie wyjątkowy:

url += '?_=' + (new Date()).getTime(); 

(ta zakłada, że ​​url jest ciągiem zawierającym żądania URL i że nie robi” t ma żadnych parametrów zapytania obecnie)

2

Z treści strony próby załadowania, sprawiają, że najpierw wysłać nagłówek tak, że wniosek nie będzie wykorzystywać pamięć podręczną ...

Na przykład, w górnej części kodu dodaj następujące linie

<?php 
header("Cache-Control: no-cache"); 
header("Pragma: no-cache"); 

//Other page contents that have to be loaded 

?> 
7

Albo można użyć $.ajax i ustaw opcję cache do false co spowoduje jQuery dodaje znacznik czasu do adresu URL żądania pod maską.

$.ajax({ 
    url: "foo.html", 
    type: "GET", 
    cache: false, 
    success: function(html) { 
     $("#foo").html(html); 
    } 
}); 
0

Albo można użyć

elem.load(url, "f" + (new Date()).valueOf()); 

tak, że każda prośba staje się nową unikalną wartość dołączana do łańcucha zapytania

Powiązane problemy