Maison  >  Article  >  interface Web  >  Plusieurs méthodes pour résoudre le problème de mise en cache de jQuery.getJSON

Plusieurs méthodes pour résoudre le problème de mise en cache de jQuery.getJSON

巴扎黑
巴扎黑original
2017-07-03 09:43:361281parcourir

Je faisais un travail de test aujourd'hui et j'ai trouvé un problème qui m'a intrigué. La méthode getJson de jquery peut obtenir le résultat renvoyé lors de l'exécution sur Firefox, mais lorsqu'elle est testée sur ie8, j'ai trouvé cela. la demande n'a pas été envoyée, je n'ai donc pas pu obtenir de résultats. Après avoir traversé de nombreux rebondissements, j'ai trouvé la solution dans un article en ligne, je l'ai donc extrait et apporté quelques modifications.

1 Rendre l'url différente pour chaque appel

Méthode : Ajouter un au paramètre Nombre aléatoire .
Exemple 1 :
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Nom : "john",random:Math.random()},function(responseText){}
Exemple 2 :
"xxx.aspx?randID="+Math .random
Exemple 3 :
"xxx.aspx?randID="+ escape(new Date())
2 sera le cache est défini sur False
$.ajax necache version :

$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});


3. Ajoutez la déclaration suivante en haut du fichier labels.html :

3972c046211259118fe1808500c69ea6

877c0711f89875388be730ee59392b76
4.load fonction peut non seulement appeler du HTML, mais aussi appeler un script, tel que labels.php, vous pouvez utiliser la fonction d'en-tête dans le fichier php :

b70f4f87e9510961bc22c2b37334b01d
5 Utilisez la méthode post au lieu de la méthode get.
Utilisation de la méthode Post nécessite Remarque :
Définissez le Context-Type de l'en-tête sur application/x-www-form-urlencode pour vous assurer que le serveur sait qu'il y a des paramètres dans l'entité variables. utilisez le XmlHttpRequestobjectSetRequestHeader("Context-Type","application/x-www- form-urlencoded;").

Exemple : xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

Les paramètres sont des paires clé-valeur avec une correspondance nom/valeur un à un. Chaque paire de valeurs est séparée par une esperluette. Par exemple, var name=abc&sex=man&age. =18, faites attention à var name=update. php?abc&sex=man&age=18 et var name=?abc&sex=man&age=18 sont tous deux mal écrits

les paramètres sont dans la méthode Send (paramètre) Send, par exemple : xmlHttp.send(name); Si c'est la méthode get, directement xmlHttp.send(null); Côté serveurParamètres de requête; S'il s'agit de la méthode get, faites la distinction entre Get et Post. $username = $_GET["username"]; S'il s'agit du mode post, alors $username = $_POST["username"];

6 Ajouter un en-tête("Cache- Control: no-cache, must-reva lidate");
7 Ajouter avant d'envoyer la requête ajax xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
8 Ajouter avant qu'Ajax n'envoie la demande xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn