[DOM] AJAX: le chargement de la page ne s'arrête jamais
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:
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:
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.