Page 1 sur 1

script qui fait planter Firefox

Publié : 14 juin 2007, 08:22
par arcanis
Salut!
J'ai un code pourtant normal qui fait complètement planter Firefox...
Il sert à actualiser une carte du monde sur laquelle est placée différents personnages.
La function est appelée toutes les 2.5 secondes.
En fait, je récupère les anciennes positions des héros, ainsi que leurs nouvelles, puis je place l'avatar correspondant sur la page.
J'ai remarqué avec un alert() que Firefox effectue plusieurs fois le traitement du FOR alors qu'il ne devrait l'exécuter qu'une fois...

Code : Tout sélectionner

function update() {
	var xhr = ajax();
	xhr.open("GET","./maps/news_move.php?lastupdate="+document.getElementById("lastupdate").value+"&x=<?php echo $_GET['x']; ?>&y=<?php echo $_GET['y']; ?>",true);
	xhr.send(null);
	
	xhr.onreadystatechange = function() {
		if(xhr.readyState == 4 && xhr.status == 200) {
			var tmp = xhr.responseText.split("%");
			var lastupdate = tmp[0];
			if(tmp[1] != "") {
				var cases = tmp[1].split(";");
				var len   = cases.length;
				for(t=1; t<=len; t++) {
					var params = cases[t].split(",");
					if(params[5] != <?php echo USER_ID; ?>) {
						if(document.getElementById("heros"+params[0]+":"+params[1])) document.getElementById("heros"+params[0]+":"+params[1]).parentNode.removeChild(document.getElementById("heros"+params[0]+":"+params[1]));
						if(params[6] != 1) {
							document.getElementById(params[2]+":"+params[3]).innerHTML += '<img id="heros'+params[2]+":"+params[3]+'" border="0" style="position: absolute; top: 0px; left: 9px; z-index: 3;" src="./avatars/'+params[4]+'.png">';
						}
					}
				}
			}
			document.getElementById('lastupdate').value = lastupdate;
		}
	}
}
Pourtant, ce code marche très bien sous IE...Firefox gère-t-il moins bien l'ajax?
Merci d'avance![/code]

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; .NET CLR 2.0.50727)

Re: script qui fait planter Firefox

Publié : 14 juin 2007, 09:20
par calimo
arcanis a écrit :Firefox effectue plusieurs fois le traitement du FOR alors qu'il ne devrait l'exécuter qu'une fois...
Ah bon ?
Ca dépend de la longueur de len... totalement sorti d'une contexte de la page, impossible d'en dire quoi que ce soit...
arcanis a écrit :xhr.open("GET","./maps/news_move.php?lastupdate="+document.getElementById("lastupdate").value+"&x=<?php echo $_GET['x']; ?>&y=<?php echo $_GET['y']; ?>",true);
Il y a du PHP dans ton javascript... ??? :shock:

Sinon, c'est où que ça plante exactement ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Publié : 14 juin 2007, 23:46
par Benoit
Je te conseillerais d'installer Firebug pour voir le contenu de tes requêtes et de leurs réponses en temps réel.