Die getJson-Methode von jquery liest dieselbe Anfrage direkt aus dem Cache nach der ersten Anfrage an den Server, um die zurückgegebenen Daten zu erhalten, und fordert die Datenbank nicht mehr an.
So beheben Sie das:
1 Mach die URL für jeden Aufruf unterschiedlich Methode: Fügen Sie dem Parameter eine Zufallszahl hinzu. Beispiel 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Beispiel 2: "xxx.aspx?randID="+Math.random Beispiel 3: "xxx.aspx?randID="+ Flucht(neues Datum()) 2 Cache auf False setzen $.ajax ungecachte Version: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ Alert(MSG);
} }); 3. Fügen Sie die folgende Aussage oben in der labels.html-Datei hinzu:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Die Load-Funktion kann nicht nur HTML aufrufen, sondern auch ein Skript wie labels.php, du kannst die Header-Funktion in der php-Datei verwenden:
<?php
header ("Cache-Control: no-cache, muss-revalidate");
?> 5 Verwenden Sie die Post-Methode statt der Get-Methode. Wenn Sie die Post-Methode verwenden, müssen Sie auf folgende Aufmerksamkeit achten: Setzen Sie den Kontexttyp des Headers auf application/x-www-form-urlencode, um sicherzustellen, dass der Server weiß, dass es Parametervariablen in der Entität gibt. Verwenden Sie üblicherweise den SetRequestHeader ("Context-Type","application/x-www- form-urlencoded) des XmlHttpRequest-Objekts; ")。 Beispiel:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Der Parameter ist ein Schlüssel-Wert-Paar, das dem Namen/Wert entspricht, und jedes Wertepaar ist durch ein >-Zeichen getrennt. Zum Beispiel, var name=abc&sex=man&age=18, achte auf var name=update.php?
abc&sex=man&age=18 und var name=?abc&sex=man&age=18 sind falsch geschrieben; Das Argument wird in der Send-Methode gesendet, z. B. xmlHttp.send(name); Handelt es sich um eine get-Methode, direkt xmlHttp.send(null);
Der serverseitige Anfrageparameter unterscheidet zwischen Get und Post. Wenn es die Get-Methode ist, dann $username = $_GET["Benutzername"]; Wenn es sich um eine Post-Methode handelt, dann $username = $_POST["username"]; 6 Hinzufügen des Headers ("Cache-Control: no-cache, must-reva lidate") auf der Serverseite; 7 xmlHttpRequest.setRequestHeader("If-Modified-Since","0") hinzufügen, bevor ajax die Anfrage sendet; 8 xmlHttpRequest.setRequestHeader ("Cache-Control","no-cache") hinzufügen, bevor ajax die Anfrage sendet;
|