Bonjour à tous,

je débute en ajax et j'ai suivi quelques tutos, je souhaite créer un tchat en ajax sur mon site perso. J'ai réussi à écrire dans un fichier et à le lire (ne marche que sous firefox d'ailleurs...).

Le problème c'est lors de l'actualisation du tchat, pour le moment je suis obligé d'appuyer sur un bouton pour actualiser la partie "ajax", c'est assez fastidieux :s.

Pouvez vous me donner un coup de main svp ?
voici mon code :

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
40
41
42
43
44
45
46
 
<script language="JavaScript">
	function actualiser() //en fait je lis le fichier dans lequel les utilisateurs tapent leur texte, tout simplement ..
	{ 
		var xhr = null; 
 
		document.form_1.textarea1.value="Démarré...";
 
			if(window.XMLHttpRequest) // Firefox et autres
			   xhr = new XMLHttpRequest(); 
			else if(window.ActiveXObject){ // Internet Explorer 
			   try {
						xhr = new ActiveXObject("Msxml2.XMLHTTP");
					} catch (e) {
						xhr = new ActiveXObject("Microsoft.XMLHTTP");
					}
			}
			else { // XMLHttpRequest non supporté par le navigateur 
			   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
			   xhr = false; 
			}
 
		xhr.onreadystatechange = function()
		{ 
			document.form_1.textarea1.value="Attente du serveur...";
			if(xhr.readyState == 4)
			{
				if(xhr.status == 200)
				{					
					document.form_1.textarea1.value= xhr.responseText;
				}	
				else	
				{
					document.form_1.textarea1.value="Error: returned status code " + xhr.status + " " + xhr.statusText;
				}	
			} 
			else
			{
			}
		}; 
		xhr.open("GET", "./tchat.xml", true); 
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		xhr.setRequestHeader("Cache-Control","no-cache");   //résoudre le probleme de chache sous IE ? marche pas :s
		xhr.send(null); 
		document.setInterval(actualiser(), 10000);  //ici je voulais tester en relançant ma fonction, mais ça fait une boucle infinie... :s
	}

merci d'avance