
Envoyé par
franckarts
Très mauvaise idée, y a une faute dedans (non prise en charge d'un cas théorique et fonction getXhr mal optimisée) qui a déjà couté de nombreuses heures à certaines personnes lors pour la correction... vu que le code en lui-même est bon ! Il suffit juste de corriger quelques petites fautes...
Remplacer la méthode getXhr par le code suivant (plus long mais plus efficace, les temps de renvoi sont quasiment identiques (le mien étant sensiblement plus rapide) excepté lors de la première instanciation sur IE (ou mon script est légèrement plus long))
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
| // Renvoie le texte de l'objet ActiveXObject le plus récent depuis une liste
var pickRecentProgID = function (idList){
// found progID flag
var bFound = false;
for(var i=0; i < idList.length && !bFound; i++){
try{
var oDoc = new ActiveXObject(idList[i]);
o2Store = idList[i];
bFound = true;
}catch (objException){
// trap; try next progID
};
};
if (!bFound)
throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez à mettre à jour votre navigateur");
idList = null;
return o2Store;
}
// Retourne un nouvel objet XmlHttpRequest
var GetXmlHttpRequest_AXO=null
var GetXmlHttpRequest=function () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest()
}
else if (window.ActiveXObject) {
if (!GetXmlHttpRequest_AXO) {
GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
}
return new ActiveXObject(GetXmlHttpRequest_AXO)
}
return false;
}
// Compatibilité avec le tuto
getXhr=GetXmlHttpRequest; |
Ensuite la vraie faute, dont la correction dans le tutoriel devrait, j'espère, ne plus trop tarder (je donne ici un exemple de fois ou je propose la correction, comme vous pouvez le constater, il est tjrs possible de procédant par essai-erreur de "corriger" la faute, mais ce n'est que virtuel car sur une connection plus lente la faute est souvent inévitable) :
XmlHttpRequest en parallèles
A noter tout de même que le tutoriel n'est pas la cause de ton problème et la solution qui t'a été donnée est admirable !
En effet, pour corriger le problème j'utilisais plutot la solution suivante (qui marchait tout aussi bien malgré tout) :
url += "¤tDate=" + escape(new Date())
Partager