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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.