RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
XMLHttpRequest et compatibilité navigateurs
chantaussel, le ven. 21 mars 2008 à 08:57:09
Bonjour tout le monde,

Pour créer un objet XMLHttpRequest compatible avec IE et Firefox j'ai trouvé deux codes différents. Un m'a l'air assez simple et je n'ai pas de mal à le comprendre.
Alors que le 2ème, trouvé ici http://www.openweb.eu.org/articles/objet_xmlhttprequest/, à l'air plus complet mais me pose problème à interpréter.


Le PREMIER:

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}

xhr_object.open("POST", scriptName, true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
--etc--


Le DEUXIEME:


function getHTTPObject()
{
var xmlhttp = false;

/* Compilation conditionnelle d'IE */
/*@cc_on
@if (@_jscript_version >= 5)
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/

/* on essaie de créer l'objet si ce n'est pas déjà fait */
if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e)
{
xmlhttp = false;
}
}

if (xmlhttp)
{
/* on définit ce qui doit se passer quand la page répondra */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState == 4) /* 4 : état "complete" */
{
if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
{
/*
Traitement de la réponse.
Ici on affiche la réponse dans une boîte de dialogue.
*/
alert(xmlhttp.responseText);
}
}
}
}
return xmlhttp;
}

Voilà mes questions:

- Je ne comprends pas ces lignes, qui contiennent des @ devant certaines instructions, et qui mettent toute la première partie en commentaire.

/*@cc_on
@if (@_jscript_version >= 5)

-----

@else
xmlhttp = false;
@end @*/



- J'ai cherché des infos sur l'instruction try...catch, en pensant que c'était du javascript, mais tout ce que j'ai trouvé la mentionne dans des cours de java. Je ne connais rien en java, mais c'est possible de mélanger java et javascript?

- Est-ce qu'il serait pas possible de combiner ainsi tous les try...catch?

function getHTTPObject()
{
var xmlhttp = false;

/* Compilation conditionnelle d'IE */
/*@cc_on
@if (@_jscript_version >= 5)
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e) // là, il faudrait surement autre chose que (e) mais je sais pas quoi...
{
xmlhttp = false;
}

}
}
}



- Et enfin, quel est l'intérêt du DEUXIEME code? Est-ce que l'éventualité

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

est importante à prendre en compte?


Merci d'avance à tous celles et ceux qui pourront m'éclairer !

:)



--
Quelques bases en javascript, débute en php/mySQL
J'essaie de mettre en ligne mon arbre généalogique.Configuration: Windows XP
Firefox 2.0.0.12


kij_82
mars 08
Suivant
REPONSES
kij_82
mars 08
kij_82
mars 08
chantaussel
mars 08
chantaussel
mars 08
chantaussel
mars 08
kij_82
mars 08
aelythe
mars 08
chantaussel
mars 08
kij_82
mars 08
chantaussel
mars 08
Version Web
Réalisé par RedShift
no save