jquery's getJson-methode leest hetzelfde verzoek direct uit de cache na het eerste verzoek aan de server om de teruggegeven gegevens te verkrijgen, en vraagt niet langer naar de database.
Zo los je het op:
1 Maak de URL verschillend voor elke oproep Methode: Voeg een willekeurig getal toe aan de parameter. Voorbeeld 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":naam,"Path":p ath,random:Math.random()},function(responseText){} Voorbeeld 2: "xxx.aspx?randID="+Math.random Voorbeeld 3: "xxx.aspx?randID="+ ontsnappen(nieuwe datum()) 2 Zet cache op False $.ajax ongecachede versie: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Voeg de volgende verklaring bovenaan het labels.html-bestand op:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. De load-functie kan niet alleen HTML aanroepen, maar ook scripts, zoals labels.php; je kunt de headerfunctie in het php-bestand gebruiken:
<?php
header ("Cache-Control: no-cache, must-revalidate");
?> 5 Gebruik post in plaats van get methode. Bij het gebruik van de Post-methode moet je letten op: Stel het Context-Type van de header in op application/x-www-form-urlencode om ervoor te zorgen dat de server weet dat er parametervariabelen in de entiteit zijn. Gebruikmaken meestal de SetRequestHeader ("Context-Type","application/x-www- form-urlencoded) van het XmlHttpRequest-object; ")。 Voorbeeld:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); De parameter is een sleutel-waardepaar dat overeenkomt met de naam/waarde, en elk paar waarden wordt gescheiden door een >-teken. Bijvoorbeeld, var name=abc&sex=man&age=18, let op var name=update.php?
abc&sex=man&age=18 en var name=?abc&sex=man&age=18 zijn verkeerd geschreven; Het argument wordt verzonden in de Verzendmethode, bijvoorbeeld xmlHttp.send(name); Als het een get-methode is, direct xmlHttp.send(null);
De server-side requestparameter maakt onderscheid tussen Get en Post. Als het de get-methode is, dan $username = $_GET["gebruikersnaam"]; Als het een postmethode is, dan $username = $_POST["gebruikersnaam"]; 6 Toevoegen van header ("Cache-Control: no-cache, must-reva lidate") aan de serverzijde; 7 Voeg xmlHttpRequest.setRequestHeader ("If-Modified-Since","0") toe voordat ajax het verzoek verstuurt; 8 Voeg xmlHttpRequest.setRequestHeader ("Cache-Control","no-cache") toe voordat ajax het verzoek verstuurt;
|