jqueryn getJson-menetelmä lukee saman pyynnön suoraan välimuistista ensimmäisen palvelimelle tehdyn pyynnön jälkeen palautettujen tietojen saamiseksi, eikä enää pyydä tietokantaa.
Näin sen voi korjata:
1 Tee URL-osoitteesta erilainen jokaiselle puhelulle Menetelmä: Lisää parametriin satunnaisluku. Esimerkki 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Esimerkki 2: "xxx.aspx?randID="+Math.random Esimerkki 3: "xxx.aspx?randID="+ escape(new Date()) 2 Aseta välimuisti vääräksi $.ajax välimuistiton versio: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Lisää seuraava väite labels.html-tiedoston yläosaan:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Load-funktio ei voi kutsua pelkästään HTML:ää, vaan myös skriptiä, kuten labels.php, voit käyttää php-tiedoston otsikkofunktiota:
<?php
header("Cache-Control: no-cache, must-revalidate");
?> 5 Käytä postia hankimisen sijaan. Kun käytät Post-menetelmää, sinun tulee kiinnittää huomiota: Aseta otsikon Context-Type application/x-www-form-urlencode -muotoon varmistaaksesi, että palvelin tietää entiteetissä olevan parametrimuuttujia. Yleensä käytetään XmlHttpRequest-objektin SetRequestHeader-tiedostoa ("Context-Type","application/x-www- form-urlencoded); ")。 Esimerkki:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parametri on avain-arvopari, joka vastaa nimeä/arvoa, ja jokainen arvopari on erotettu >-merkillä. Esimerkiksi, var name=abc&sex=man&age=18, kiinnitä huomiota var name=update.php?
abc&sex=man&age=18 ja var name=?abc&sex=man&age=18 on kirjoitettu väärin; Argumentti lähetetään Send-menetelmällä, esim. xmlHttp.send(name); Jos se on get-metodi, suoraan xmlHttp.send(null);
Palvelinpuolen pyyntöparametri erottaa Get ja Post. Jos se on get-metodi, niin $username = $_GET["käyttäjänimi"]; Jos kyseessä on postausmenetelmä, niin $username = $_POST["käyttäjänimi"]; 6 Lisää otsikko ("Cache-Control: no-cache, must-reva lidate") palvelinpuolelle; 7 Lisää xmlHttpRequest.setRequestHeader("If-Modified-Since","0") ennen kuin ajax lähettää pyynnön; 8 Lisää xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") ennen kuin ajax lähettää pyynnön;
|