AJAX signifie « Asynchronous Javascript And XML », qui fait référence à une technologie de développement Web permettant de créer des applications Web interactives. Ensuite, cet article vous présentera le problème du cache Ajax et sa solution sous IE8. Examinons-le ensemble
Introduction à Ajax
AJAX signifie « Asynchrone ». « Javascript And XML » (Javascript et XML asynchrones) fait référence à une technologie de développement Web permettant de créer des applications Web interactives.
AJAX = JavaScript asynchrone et XML (un sous-ensemble du langage de balisage standard généralisé).
AJAX est une technologie permettant de créer des pages Web rapides et dynamiques.
AJAX permet de mettre à jour les pages Web de manière asynchrone en échangeant une petite quantité de données avec le serveur en arrière-plan. Cela signifie que certaines parties d'une page Web peuvent être mises à jour sans recharger la page entière.
Le code suivant fonctionne correctement dans d'autres navigateurs, mais d'étranges problèmes surviennent dans IE8.
$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
success:function(item){
debugger;
....
}
});
Copier après la connexion
Après une enquête minutieuse, il s'est avéré qu'il s'agissait d'un problème de cache ajax dans IE8. Bon sang, lorsque l'exécution atteint ce point, en fait, elle n'accède pas à notre code en arrière-plan, mais utilise les résultats précédemment mis en cache. Lors du débogage en arrière-plan, il n'y a pas de réponse, et j'ai découvert que c'était le problème ! ! ! ! IE8 est prêt à abandonner.
Mais ce qui est étrange, c'est qu'il existe de tels codes dans de nombreux endroits. Pourquoi est-il mis en cache uniquement ici et pas ailleurs ?
Solution :
1.
$.ajaxSetup({ cache: false });
Copier après la connexion
Copier après la connexion
2. Paramètres plus attributs : cache : faux
$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
cache:false,
success:function(item){
debugger;
....
}
});
Copier après la connexion
3. d'autres méthodes après l'URL.
Leçon :
Les programmeurs devraient vraiment : regarder des deux côtés lorsqu'ils traversent la route !
Ne faites pas trop confiance aux valeurs par défaut. Assurez-vous de spécifier quels attributs sont nécessaires. Il est donc préférable de préciser : cache:false à chaque fois, ou chaque page js est garantie d'être exécutée une fois au début :
$.ajaxSetup({ cache: false });
Copier après la connexion
Copier après la connexion
En fait , le chemin prend des méthodes d'horodatage ou de nombres aléatoires qui sont parfois peu fiables ! Peut-être que le navigateur l'ignore. Quoi qu'il en soit, IE8 a rencontré une situation dans laquelle l'URL avec horodatage échoue à plusieurs reprises.
J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.
Articles associés :
Problème de mise en cache Ajax sous IE8/IE9
IE8 ne peut pas être actualisé à chaque fois en utilisant l'accès ajax Problème
Solution rapide au code tronqué de soumission Ajax sous IE
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!