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:
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
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>") ; } } } }
Voilà, pourriez vous m'indiquer l'origine du problème?
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>
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.
Partager