script qui fait planter Firefox

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
arcanis

script qui fait planter Firefox

Message 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)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: script qui fait planter Firefox

Message 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
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message 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.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités