Heim  >  Artikel  >  Web-Frontend  >  Mehrere Methoden zur Lösung des Caching-Problems von jQuery.getJSON

Mehrere Methoden zur Lösung des Caching-Problems von jQuery.getJSON

巴扎黑
巴扎黑Original
2017-07-03 09:43:361228Durchsuche

Ich habe heute Tests durchgeführt und ein Problem festgestellt, das mich verwirrte. Die getJson-Methode von jquery kann das zurückgegebene Ergebnis erhalten, wenn sie unter Firefox ausgeführt wird, aber beim Testen auf ie8 habe ich das festgestellt Es wurde keine Anfrage gesendet, daher konnte ich keine Ergebnisse zurückgeben. Nachdem ich viele Wendungen durchgegangen war, habe ich die Lösung in einem Online-Artikel gefunden, also einen Auszug daraus gemacht und einige Änderungen vorgenommen.

1 Machen Sie die URL für jeden Anruf unterschiedlich

Methode: Fügen Sie eins zum Parameter Zufallszahl hinzu .
Beispiel 1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Name: "john",random:Math.random()},function(responseText){}
Beispiel 2:
"xxx.aspx?randID="+Math .random
Beispiel 3:
"xxx.aspx?randID="+ escape(new Date())
2 will Cache ist auf False gesetzt
$.ajax führt keinenCacheVersion:

$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});


3. Fügen Sie die folgende Anweisung oben in der Datei labels.html hinzu:

c52583f15a66f9e83f55b574974da251

4ef21fe295e452c3aeb67780abbc5800
4.load function kann nicht nur HTML aufrufen, sondern auch Skripte wie labels.php aufrufen, Sie können die Header-Funktion verwenden in der PHP-Datei :

14be781ed56198116624b8f5a80c91a3
5 Post anstelle der get-Methode verwenden.
Post-Methode verwenden erfordert Hinweis:
Setzen Sie den Kontexttyp des Headers auf application/x-www-form-urlencode, um sicherzustellen, dass der Server weiß, dass es Parameter in der Entität Variablen gibt Verwenden Sie das XmlHttpRequestObjektSetRequestHeader("Context-Type","application/x-www- form-urlencoded;").

Beispiel: xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

Parameter sind Schlüssel-Wert-Paare mit einer Eins-zu-Eins-Name/Wert-Entsprechung. Jedes Wertepaar wird durch ein kaufmännisches Und getrennt. Beispiel: var name=abc&sex=man&age =18, achten Sie auf var name=update.abc&sex=man&age=18 und var name=?abc&sex=man&age=18 sind beide falsch geschrieben; > Parameter befinden sich in der Send-Methode (Parameter), zum Beispiel: xmlHttp.send(name); Wenn es sich um die get-Methode handelt, direkt Serverseite

Parameter anfordern

Wenn es sich um die Get-Methode handelt, unterscheiden Sie zwischen Get und Post. Wenn es sich um den Post-Modus handelt, dann $username = $_POST["username"]; 6 Header hinzufügen („Cache-Kontrolle: kein Cache, muss erneut validiert werden“);

7 Vor dem Senden einer Ajax-Anfrage hinzufügen xmlHttpRequest.setRequestHeader("If-Modified-Since","0");

8 Fügen Sie hinzu, bevor Ajax die Anfrage sendet xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

Das obige ist der detaillierte Inhalt vonMehrere Methoden zur Lösung des Caching-Problems von jQuery.getJSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn