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

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

亚连
Libérer: 2018-05-23 16:54:10
original
1637 Les gens l'ont consulté

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!

É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