Metóda getJson v jquery číta rovnakú požiadavku priamo z cache po prvej požiadavke na server na získanie vrátených dát a už nepožaduje databázu.
Tu je návod, ako to opraviť:
1 Urobte URL odlišnú pre každý hovor Metóda: Pridaj náhodné číslo k parametru. Príklad 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Príklad 2: "xxx.aspx?randID="+Math.random Príklad 3: "xxx.aspx?randID="+ escape(new Date()) 2 Nastaviť cache na False $.ajax necacheovaná verzia: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ Alert(MSG);
} }); 3. Zahrňte nasledujúce vyhlásenie na vrch labels.html súboru:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Funkcia načítania môže nielen volať HTML, ale aj skriptovať, napríklad labels.php, môžete použiť hlavičku v php súbore:
<?php
hlavička ("Cache-Control: no-cache, must-revalidate");
?> 5 Používajte metódu post namiesto get. Pri používaní metódy Post by ste mali venovať pozornosť: Nastavte kontextový typ hlavičky na application/x-www-form-urlencode, aby server vedel, že v entite sú parametrické premenné. Zvyčajne sa používa SetRequestHeader("Context-Type","application/x-www- form-urlencoded) objektu XmlHttpRequest; ")。 Príklad:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parameter je pár kľúč-hodnota zodpovedajúci názvu/hodnote a každá dvojica hodnôt je oddelená znamienkom >. Napríklad, var name=abc&sex=man&age=18, venujte pozornosť var name=update.php?
abc&sex=man&age=18 a var name=?abc&sex=man&age=18 sú napísané nesprávne; Argument sa odosiela metódou Send, napr. xmlHttp.send(name); Ak ide o get metódu, priamo xmlHttp.send(null);
Parameter požiadaviek na strane servera rozlišuje medzi Get a Post. Ak je to metóda get, potom $username = $_GET["username"]; Ak ide o metódu príspevku, potom $username = $_POST["používateľské meno"]; 6 Pridať hlavičku ("Cache-Control: no-cache, must-reva lidate") na strane servera; 7 Pridanie xmlHttpRequest.setRequestHeader("If-Modified-Because","0") predtým, než ajax odošle požiadavku; 8 Pridaj xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") predtým, než ajax odošle požiadavku;
|