jquerys getJson-metod läser samma förfrågan direkt från cachen efter den första förfrågan till servern för att få tillbaka den returnerade datan, och begär inte längre databasen.
Så här åtgärdar du det:
1 Gör URL:en olika för varje anrop Metod: Lägg till ett slumptal till parametern. Exempel 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Exempel 2: "xxx.aspx?randID="+Math.random Exempel 3: "xxx.aspx?randID="+ flykt(nytt datum()) 2 Sätt cache till False $.ajax ocachad version: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Inkludera följande uttalande högst upp i labels.html filen:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Load-funktionen kan inte bara anropa HTML, utan även skript, såsom labels.php, du kan använda header-funktionen i php-filen:
<?php
header ("Cache-Control: no-cache, must-revalidate");
?> 5 Använd postmetoden istället för get. När du använder Post-metoden måste du vara uppmärksam på: Ställ in headerns Context-Type till application/x-www-form-urlencode för att säkerställa att servern vet att det finns parametervariabler i entiteten. Brukar använda SetRequestHeader("Context-Type","application/x-www- form-urlencoded) för XmlHttpRequest-objektet; ")。 Exempel:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parametern är ett nyckel-värde-par som motsvarar namnet/värdet, och varje par av värden separeras av ett >-tecken. Till exempel, var name=abc&sex=man&age=18, lägg märke till var name=update.php?
abc&sex=man&age=18 och var name=?abc&sex=man&age=18 är felaktigt skrivna; Argumentet skickas i Send-metoden, t.ex. xmlHttp.send(name); Om det är en get-metod, direkt xmlHttp.send(null);
Serversidans begäranparameter skiljer mellan Get och Post. Om det är get-metoden, så $username = $_GET["username"]; Om det är en postmetod, så $username = $_POST["användarnamn"]; 6 Lägg till header ("Cache-Control: no-cache, must-reva lidate") på serversidan; 7 Lägg till xmlHttpRequest.setRequestHeader("If-Modified-Since","0") innan ajax skickar förfrågan; 8 Lägg till xmlHttpRequest.setRequestHeader ("Cache-Control","no-cache") innan ajax skickar förfrågan;
|