J'ai une fonction jQuery ajax qui récupère les données JSON. Dans le bloc de succès, j'appelle une autre fonction pour analyser les données et mettre à jour la page. A la fin de cette fonction d'analyse/mise à jour, un appel ajax différent est effectué. Cela fonctionne parfaitement dans tous les navigateurs sauf Internet Explorer (7 et 8). Le problème est que Internet Explorer pense que le script prend trop de temps à traiter car le bloc de succès du premier appel ajax ne se termine pas avant la fin du 2ème appel ajax.jQuery ajax enchaîne les problèmes d'Internet Explorer
Je reçois le message suivant: "Arrêtez l'exécution de ce script: un script sur cette page ralentit l'exécution de votre navigateur Web, s'il continue à s'exécuter, votre ordinateur risque de ne plus répondre."
Mon code jQuery:
$("#id_select").bind("change", function(e){
$.ajax({
url: "/retrieve_data.js",
data: {id:$(e.target).children(":selected").attr("value")},
type: "get",
dataType:"json",
success: function(data, status, form){
processData(data);
},
error: function(response, status){
alert(response.responseText);
}
});
})
Toutes les suggestions sur la façon d'obtenir IE pour arrêter le délai ou pour accomplir cette tâche sans réécrire toutes mes fonctions jQuery seraient appréciés.
Ceci est un tir dans le noir, mais peut-être placer votre appel à 'processData (données)' à l'intérieur d'un 'setTimeout()' (avec une durée minimale) afin que la fonction 'succès' retournera immédiatement? Je n'ai pas essayé, mais qui sait. – user113716
Cela peut être utile si vous pouvez publier le code pour processData car cela pourrait être la cause du problème. –