[AJAX] Synchronisation d'un traitement
J'ai un traitement assez long à réaliser et je suis en train de passer en Javascript le traitement qui était jusqu'à présent fait en PHP. Cela permet de modifier les couleurs des lignes à traiter au fur et à mesure de l'avancée du traitement.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| for (i =parseInt(document.getElementById("ed_LigDebut").value - 1);
i<=document.getElementById("ed_NbLignes").value; i++ ){
// construire une URL
LC_URL = "API_yyyyl.php?xxxxxx";
// afficher les projets du client sélectionné
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function() {TRT_Resultat(xhr, i);};
xhr.open("GET", LC_URL, false);
xhr.send(null);
}
function TRT_Resultat(xhr, PN_Ligne){
if (xhr.readyState==4) {
var LO_LIG = document.getElementById("id_LIG_" + PN_Ligne);
if (LO_LIG != null){
LO_LIG.className = "EcranSaisieDetailLigneImpaire";
}
}
} |
La fonction est appelée depuis le onLoad du body.
Sur Opera cela fonctionne parfaitement.
Par contre sous FireFox seul le premier ordre est exécuté. Pourtant j'ai positionné le booléen de xhr.open à false pour rendre le traitement synchrone.
Si je place un alert au milieu de la boucle chaque étape du traitement est bien prise en compte.
Merci d'avance de vos idées.