jquerys getJson-metode leser den samme forespørselen direkte fra cachen etter den første forespørselen til serveren for å hente de returnerte dataene, og forespør ikke lenger databasen.
Slik fikser du det:
1 Gjør URL-en forskjellig for hvert kall Metode: Legg til et tilfeldig tall til parameteren. Eksempel 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Eksempel 2: "xxx.aspx?randID="+Math.random Eksempel 3: "xxx.aspx?randID="+ flukt(ny dato()) 2 Sett cache til falsk $.ajax ubufret versjon: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Inkluder følgende uttalelse øverst i labels.html-filen:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Utløper" INNHOLD="-1"> 4. Lastefunksjonen kan ikke bare kalle HTML, men også skript, som labels.php, du kan bruke header-funksjonen i php-filen:
<?php
header ("Cache-Control: no-cache, must-revalidate");
?> 5 Bruk post i stedet for get-metoden. Når du bruker Post-metoden, må du være oppmerksom på: Sett headerens Context-Type til application/x-www-form-urlencode for å sikre at serveren vet at det finnes parametervariabler i enheten. Vanligvis bruker jeg SetRequestHeader("Context-Type","application/x-www- form-urlencoded) til XmlHttpRequest-objektet; ")。 Eksempel:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parameteren er et nøkkel-verdi-par som tilsvarer navnet/verdien, og hvert par av verdier er adskilt med et >-tegn. For eksempel, var name=abc&sex=man&age=18, legg merke til var name=update.php?
abc&sex=man&age=18 og var name=?abc&sex=man&age=18 er skrevet feil; Argumentet sendes i Send-metoden, f.eks. xmlHttp.send(name); Hvis det er en get-metode, direkte xmlHttp.send(null);
Server-side forespørselsparameteren skiller mellom Get og Post. Hvis det er get-metoden, så $username = $_GET["brukernavn"]; Hvis det er en postmetode, så $username = $_POST["brukernavn"]; 6 Legg til header ("Cache-Control: no-cache, must-reva lidate") på serversiden; 7 Legg til xmlHttpRequest.setRequestHeader("If-Modified-Since","0") før ajax sender forespørselen; 8 Legg til xmlHttpRequest.setRequestHeader ("Cache-Control","no-cache") før ajax sender forespørselen;
|