Maison > interface Web > js tutoriel > le corps du texte

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

巴扎黑
Libérer: 2017-07-03 09:43:36
original
1281 Les gens l'ont consulté

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);
}
});
Copier après la connexion


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


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 :

header("Cache-Control: no-cache, must-revalidate");

?>
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!