Maison  >  Article  >  interface Web  >  Problèmes de mise en cache Ajax et solutions sous IE8

Problèmes de mise en cache Ajax et solutions sous IE8

亚连
亚连original
2018-05-23 16:54:101597parcourir

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;
....
}
});

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 });

2. Paramètres plus attributs : cache : faux


$.ajax({
url:dataUrl,
data:encodeURI(currentjsonform),
dataType:'JSON',
cache:false,
success:function(item){
debugger;
....
}
});

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 });

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!

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