30-05-2011, 07:11 PM
(Modification du message : 30-05-2011, 07:29 PM par Sephi-Chan.)
Je n'y tiens pas spécialement, c'est juste que ton code n'est pas de bonne qualité (no offense, c'est pas facile avec de l'artisanal) : il provoque effets de bords et a un résultat inattendu.
Je te propose donc une alternative de qualité, bien plus robuste et qui t'évitera des problèmes tout en rendant ton code beaucoup plus facile à lire, à écrire et à maintenir.
Si tu tiens à conserver ton approche artisanale, je te suggère d'opter pour une méthode getXhr() plus robuste. Comme celle-ci :
Et l'utiliser comme ceci :
Après tu fais comme tu veux, c'est toi qui voit ce que tu préfères entre les quelques lignes que je t'ai proposé et ce bazar.
Je te propose donc une alternative de qualité, bien plus robuste et qui t'évitera des problèmes tout en rendant ton code beaucoup plus facile à lire, à écrire et à maintenir.
Si tu tiens à conserver ton approche artisanale, je te suggère d'opter pour une méthode getXhr() plus robuste. Comme celle-ci :
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else {
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
Et l'utiliser comme ceci :
function move(x,y,map){
xhr = getXhr();
xhr.open("POST",'deplacement.php',true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("posx="+x+"&posy="+y+"&map="+map);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)){
LoadDiv("map","test.php");
LoadDiv1("menu_joueur","menu_joueur.php");
var receivedData = JSON.parse(xhr.responseText);
}
}
}
Après tu fais comme tu veux, c'est toi qui voit ce que tu préfères entre les quelques lignes que je t'ai proposé et ce bazar.