La méthode getJson de jquery lit la même requête directement depuis le cache après la première requête au serveur pour obtenir les données retournées, et ne demande plus la base de données.
Voici comment résoudre cela :
1 Rendre l’URL différente pour chaque appel Méthode : Ajouter un nombre aléatoire au paramètre. Exemple 1 : jQuery.getJSON("$ !{ Racine}/a/a/s.ashx »,{"ID » :id,"Nom » :nom,"Chemin »:p ath,random :Math.random()},fonction(responseText){} Exemple 2 : « xxx.aspx ?randID="+Math.random Exemple 3 : « xxx.aspx ?randID="+ escape(nouvelle date()) 2 Définir le cache sur Faux Version non mise en cache de $.ajax : $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alerte (msg) ;
} }); 3. Incluez l’instruction suivante en haut du fichier labels.html :
<META HTTP-EQUIV="Pragma » CONTENT="no-cache">
<META HTTP-EQUIV="Expires » CONTENT= »-1"> 4. La fonction de chargement peut non seulement appeler du HTML, mais aussi un script, comme labels.php, vous pouvez utiliser la fonction d’en-tête dans le fichier php :
< ?php
en-tête (« Cache-Control : no-cache, must-revalidate » ) ;
?> 5 Utilisez la méthode post au lieu de la méthode « get ». Lorsque vous utilisez la méthode de publication, vous devez prêter attention à : Réglez le type de contexte de l’en-tête sur application/x-www-form-urlencode pour s’assurer que le serveur sait qu’il y a des variables de paramètres dans l’entité. On utilise généralement l’en-tête SetRequest(« Context-Type »,"application/x-www- form-urlencoded) de l’objet XmlHttpRequest ; ")。 Exemple :
xmlHttp.setRequestHeader(« Content-Type »,"application/x-www-form-urlencoded ») ; Le paramètre est une paire clé-valeur correspondant au nom/valeur, et chaque paire de valeurs est séparée par un signe >. Par exemple, var name=abc&sex=man&age=18, faites attention à la var name=update.php ?
abc&sex=homme&âge=18 et nom de la variété= ?abc&sex=homme&âge=18 sont mal écrits ; L’argument est envoyé dans la méthode Send, par exemple xmlHttp.send(name) ; Si c’est une méthode get, directement xmlHttp.send(null) ;
Le paramètre de requête côté serveur distingue Obtenir et Post. Si c’est la méthode get, alors $username = $_GET[« username »] ; Si c’est une méthode post, alors $username = $_POST[« nom d’utilisateur »] ; 6 Ajouter un en-tête (« Cache-Control : no-cache, must-reva lidate ») côté serveur ; 7 Ajouter xmlHttpRequest.setRequestHeader(« If-Modified-Since « ,"0 ») avant qu’ajax n’envoie la requête ; 8 Ajouter xmlHttpRequest.setRequestHeader (« Cache-Control », « no-cache ») avant qu’ajax n’envoie la requête ;
|