[AJAX] Requêtes multiples
Bonjour.
Voila je souhait effectuer un traitement plusieurs fois par le serveur avec a chaque fois un affichage du "log" sur la page du client :
traitement1 ok
traitement2 ok
...
chaque traitement est effectué par une XMLHTTPRequest lancé dans une boucle javascript.
Mon probleme :
en mode synchrone : tout les traitement sont effectué et ensuite le resultat de chaque traitement est affiché.
en mode asynchrone : toutes les requetes sont envoyé puis les resultat s'affichent au fur et a mesure des reponse. seulement, je n'arrive pas a savoir si tout mes traitement sont fini pour effectuer d'autres traitement apres ma boucle javascript.
un peu de 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 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
function getXhr(xhr){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}else{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr ;
}
function go(station){
var xhr = null;
xhr = getXhr(xhr);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
document.getElementById(station).innerHTML = leselect;
}
}
xhr.open("POST","envoi_teleaction.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send('station='+station);
}
function page_charge(){
for (var i in listeStations ){
go(listeStations[i]);
}
//effectuer autre chose ici quand TOUT est fini
} |