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 : 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
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 }
Partager