Ajax asynchrone

Ajax asynchrone - HTML/CSS - Programmation

Marsh Posté le 31-05-2009 à 17:05:39    

Je test des petits transferts asynchrone en ajax afin de faire une interface multi-utilisateur.
 
Ca marche, le probleme c'est que la reponse "xhr_object.responseText" n'est pas parfaite.
 
Ma fonction :
 

Code :
  1. function file(fichier)
  2. {
  3. if(window.XMLHttpRequest) // FIREFOX
  4. xhr_object = new XMLHttpRequest();
  5. else if(window.ActiveXObject) // IE
  6. xhr_object = new ActiveXObject("Microsoft.XMLHTTP";);
  7. else {alert("Votre explorateur ne supporte pas l'AJAX, aller telcharger firefox";);return;};
  8. xhr_object.open("GET", fichier, true);
  9. xhr_object.send(null);
  10. xhr_object.onreadystatechange = refreshMsg;
  11. }
  12. function refreshMsg(gg)
  13. {
  14. if(xhr_object.readyState==3)alert(xhr_object.responseText);
  15. }


 
En php j'ai une petite boucle qui me renvoi l'heure toute les 2 secs (pour tester)
 
Ca me renvoi :
 
(1er responseText)  : 16:50:40
(2em responseText)  : 16:50:4016:50:41
(3em responseText)  : 16:50:4016:50:4116:50:42
(4em responseText)  : 16:50:4016:50:4116:50:4216:50:43
(5em responseText)  : 16:50:4016:50:4116:50:4216:50:4316:50:44
 
Alors que je voudrais :
 
(1er responseText)  : 16:50:40
(2em responseText)  : 16:50:41
(3em responseText)  : 16:50:42
(4em responseText)  : 16:50:43
(5em responseText)  : 16:50:44
 
Je ne sais pas si c'est possible, mais ca m'eviterai des requete assez lourde a filtrer.
 
Merci :)
 
 
 
EDIT : Au passage ca merde sous IE7, il me dit que les data ne sont pas encore prete, je ne pas si je le peux le forcer a lire avec un readyState a 3.


Message édité par GordonF_69 le 31-05-2009 à 17:08:11
Reply

Marsh Posté le 31-05-2009 à 17:05:39   

Reply

Marsh Posté le 01-06-2009 à 00:00:40    

1) le premier A de AJAX veut dire Asynchrone, donc par définition une requete ajax est tjrs asynchone ;)
 
2) c'est ptetre fait expres, mais sauf erreur une requete XHR est "terminée" lorsque le "flag" readystate est à 4 et non à 3
 
3) comment fais tu ta boucle ? avec une setTimeout du coté client je suppose ? Donc tu recrées un objet XHR à chaque boucle à priori ?


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 01-06-2009 à 00:45:41    

Actuellement j'ai un settimeout qui me fait file("fichier.php" ) toutes les 2 secs.
 
J'aimerai le remplacer par un seul file("fichier.php" ) qui va lire les retour de ce fichier php afin d'avoir moins de requete sur mon serv web. (et aussi car 90% ds requetes renvoient un résultat nul)
 
Un peu comme le "excel" de google doc, il fait une seule requete et lit le resultat petit a petit.


Message édité par GordonF_69 le 01-06-2009 à 01:00:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed