Metoda getJson a jquery citește aceeași cerere direct din cache după prima cerere către server pentru a obține datele returnate și nu mai solicită baza de date.
Iată cum se rezolvă:
1 Faceți URL-ul diferit pentru fiecare apel Metodă: Adaugă un număr aleatoriu la parametru. Exemplul 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Exemplul 2: "xxx.aspx?randID="+Math.random Exemplul 3: "xxx.aspx?randID="+ escape(new Date()) 2 Setează cache-ul pe False Versiunea necacheată a $.ajax: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alertă (MSG);
} }); 3. Include următoarea afirmație în partea de sus a fișierului labels.html:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Funcția de încărcare nu poate doar să apeleze HTML, ci și script, cum ar fi labels.php, poți folosi funcția de antet în fișierul php:
<?php
antet("Cache-Control: no-cache, must-revalidate");
?> 5 Folosește metoda post în loc de a obține. Când folosești metoda Postării, trebuie să fii atent la: Setează Context-Type al antetului pe application/x-www-form-urlencode pentru a se asigura că serverul știe că există variabile de parametri în entitate. De obicei se folosește SetRequestHeader("Context-Type","application/x-www- form-urlencoded) al obiectului XmlHttpRequest; ")。 Exemplu:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parametrul este o pereche cheie-valoare corespunzătoare numelui/valorii, iar fiecare pereche de valori este separată printr-un semn >. De exemplu, var name=abc&sex=man&age=18, fii atent la var name=update.php?
abc&sex=bărbat&vârstă=18 și var name=?abc&sex=bărbat&vârstă=18 sunt scrise incorect; Argumentul este trimis în metoda Send, de exemplu xmlHttp.send(name); Dacă este o metodă get, direct, xmlHttp.send(null);
Parametrul de cerere pe partea de server face distincție între Get și Post. Dacă este metoda get, atunci $username = $_GET["username"]; Dacă este o metodă post, atunci $username = $_POST["username"]; 6 Adaugă antet ("Cache-Control: no-cache, must-reva lidate") pe partea de server; 7 Adaugă xmlHttpRequest.setRequestHeader("If-Modified-Since","0") înainte ca ajax să trimită cererea; 8 Adaugă xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") înainte ca ajax să trimită cererea;
|