[XMLHttpRequest] petite question

Bonjour,

Dans une fonction


function alertContents(http) {
	if (http.readyState == 4) {
    	if (http.status == 200) {
        http_xml = http.responseXML;
                LancePHP('listeCommande','remplirCommandes.php?fichierXML=commandesXML.xml&fichierXSL=commandes.xsl');
    	} else {
        alert('Un problème est survenu avec la requête.');
    	}
	}
}

est ce que dès que j’ai une modification sur http_xml, ca relance la fonction ou cette fonction n’est executé une seul fois, qd je fait mon http.onreadystatechange = function() { alertContents(http); };

J’ai bien compri que ca attendait la reponse serveur, mais ca n’attend pas ensuite de modification?
Si c’est le cas, comment détécter une modification sur mon XML?

merci

pour resumer:
Existe t’il un evenement qui detecte la modification d’un objet???

Cette objet est global!

J’ai pas trop saisi ton problème?

Cet objet (et c’est du javascript/ajax) sert juste à lancer des requêtes et à les récupérer. Qu’entends tu par “dés que j’ai une modif’ sur http_xml” ? Que tu ai envoyé une requête? Dans ce cas ta fonction sera appelé autant de fois que nécessaire (comprendre : 1 fois pour dire que c’est fini, et d’autres pour le téléchargement en streaming, tout un programme donc).

J’espère que tu t’attends pas à ce qu’il te prévienne que le flux XML a été modifié?

en fait, je lance une requette pour charger un xml, puis je la recupère avec function alertContents(http).

Mais ensuite, si je modifi mon xml, je suis obliger de rapeler ma fonction qui charge le xml a la main. Je voulais donc savoir si il y avait pas un evenement qui le detecterai?

Bien sûr. Ajax c’est tellement formidable qu’il garde une connexion ouverte avec le serveur histoire de savoir si le fichier est éventuellement modifié :slight_smile:

A la base, Ajax c’est censé économisé la BP, donc ce truc là, c’est typiquement bouffer la bande passante pour rien.

Tu peux par contre jouer avec windows.setInterval() (voir google, je me souviens plus du nom de la méthode) pour relancer ta requête http toutes les X millisecondes.

[edit] et te servir de ça pour faire une requête vers un autre fichier te disant si ton fichier (supposé lourd) a été modifié ou non depuis un temps t.