Bonjour,

J'ai suivi les tutoriels sur AJAX présents sur ce site pour réaliser mon premier script AJAX, tout simple et à peu de choses près semblable à celui que Gaël Donat utilise pour expliquer les bases d'AJAX...mon problème c'est qu'apparamment le script ne se termine jamais. Dès que j'active le script AJAX, un symbole apparait dans le navigateur, celui qui indique normalement que la page est en train de se charger....il ne disparait jamais bien que le script en lui-même(qui va juste chercher des infos dans un fichier XML et les affiche sur la page) ne met que quelques instants à s'exécuter...pourquoi, je ne comprends pas.

Voici mon fichier .js:

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
38
39
// JavaScript Document
 
function ajax()
{
    var xhr=null;
 
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) 
    {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr); };
    //on affiche le message d'acceuil
    document.getElementById("message").className="tumevois";
    //on appelle le fichier reponse.txt
    xhr.open("GET", "http://amallric.free.fr/trench_warfare/chat_get.php", true);
    xhr.send(null);
 
}
 
function alert_ajax(xhr)
{ if (xhr.readyState==4) {
      var docXML = xhr.responseXML ;
      var auteurs = docXML.getElementsByTagName("auteur") ;
      var contenus = docXML.getElementsByTagName("contenu") ;
      document.getElementById("message").className="tumevoispas";
      for(i=0;i<auteurs.length;i++) {
        document.write(auteurs.item(i).firstChild.data) ;
        document.write(":") ;
        document.write(contenus.item(i).firstChild.data) ;
        if (i!=auteurs.length) {
          document.write("<br>") ;
          }
      }
   }   
}
et mon fichier HTML, encore plus classique:

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
<html>
  <head>
    <title>
    Chat
    </title>
    <style>
    .tumevoispas
        {
          visibility: hidden;
        }
 
    .tumevois
        {
          visibility: visible;
          font-size : 200%; 
          background-color: #DAEDFC;
          width: 300px;
          height: 40px;
        }
    </style>
  </head>
  <body>
    <script type="text/javascript" src="ajax.js"></script>
    <?php
    echo "hello world" ;
    ?>
    <p>
      <a href="javascript:ajax();">Cliquez ici</a>
    <p>
    <div class="tumevoispas" id="message">Veuillez patienter...</div>
  </body>
</html>
Voilà, pourriez vous m'indiquer l'origine du problème?

PS: ça n'a rien à voir mais pourriez vous également m'expliquer comment *envoyer* des données avec AJAX, pour par exemple par la suite les traiter par un script PHP et les insérer dans une base de données? Si c'est avec xhr.send, comment récupère-t-on les données dans PHP par la suite? Merci.