Bonjour a tous!
Il y a different sujet sur ce théme, j'en est lu quelques uns ainsi que d'autre tutoriels, mais je n'arrive pas a trouver de réponse claire sur le sujet.
Voilà le probléme ou plutot le doute:
L'idée est de récuperer des donnée xml pour les afficher dans mon html, je souhaite donc avoir dans ma variable l'arbre du xml, ensuite je gére ces données celon mes besoins avec une fonction getData(ici les données du xml).
La gestion des données il n'y a pas de souci, par contre pour la requete j'ai des doutes voilà les deux fonctions en compétition:
et
Je suis conscient qu'elle ne sont pas parfaitement écrite, mais j'aimerais savoir qu'elle est la bonne piste.
1. Le "document.implementation.createDocument" est il plus robuste que le "XMLHttpRequest"?. Est-il supporté par safari?
2. Indépendament des supports par les differents naviguateurs, quel est celui qui est le plus propre par rapport au spécification w3c?
3. Il me semble, mais peut-être que je me trompe, que le "document.implementation.createDocument" est plus rapide. Dans le cas ou son implementation n'est pas suffisante ne pourrait on pas faire un fonction qui testerais celle-ci d'abords puis XMLHttpRequest comme ça:
3. Est-il réellement necessaire d'écrire toute les variantes du ActiveXObject pour ie, (Msxml2.XMLHTTP, Msxml3.XMLHTTP), j'ai vu par exemple des truc comme ça:
Apparament c'est lié au differentes version des parser xml d'Explorer
mais est ce un luxe inutile ou ça a vraiment un avantage?
4. Toujours pour ie, j'ai vu sur OpenWeb, qu'ils utilisent des /*@cc_on comme comentaires conditionnels ie, j'aime pas voir c'est signes, alors je préfére tester les methodes, mais bon comme c'est OpenWeb, je me demande si c'est pas mieux...
Merci a vous si arrivez a dissiper ces doutes pour que je puisse charger mes xml dans en toute sérénité. [code]
Modifié par matmat (25 May 2007 - 16:30)
Il y a different sujet sur ce théme, j'en est lu quelques uns ainsi que d'autre tutoriels, mais je n'arrive pas a trouver de réponse claire sur le sujet.
Voilà le probléme ou plutot le doute:
L'idée est de récuperer des donnée xml pour les afficher dans mon html, je souhaite donc avoir dans ma variable l'arbre du xml, ensuite je gére ces données celon mes besoins avec une fonction getData(ici les données du xml).
La gestion des données il n'y a pas de souci, par contre pour la requete j'ai des doutes voilà les deux fonctions en compétition:
function loadXML(){
var xmlhttp = false;
if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}
else if (window.ActiveXObject) {
try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
}
if (xmlhttp){
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
getData(xmlhttp.responseXML)
}
}
xmlhttp.open("GET", "url",true);
xmlhttp.send(null);
}
}
et
function loadXML(){
if (document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.onload = getData;
}
else if (window.ActiveXObject){
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function(){
if (xmlDoc.readyState == 4) getData()
};
}
if(xmlDoc){
xmlDoc.load("url");
}
}
Je suis conscient qu'elle ne sont pas parfaitement écrite, mais j'aimerais savoir qu'elle est la bonne piste.
1. Le "document.implementation.createDocument" est il plus robuste que le "XMLHttpRequest"?. Est-il supporté par safari?
2. Indépendament des supports par les differents naviguateurs, quel est celui qui est le plus propre par rapport au spécification w3c?
3. Il me semble, mais peut-être que je me trompe, que le "document.implementation.createDocument" est plus rapide. Dans le cas ou son implementation n'est pas suffisante ne pourrait on pas faire un fonction qui testerais celle-ci d'abords puis XMLHttpRequest comme ça:
function loadXML(){
if (document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.load("url");
xmlDoc.onload = function(){
getData(this)
}
}else{
var xmlhttp = false;
if (window.XMLHttpRequest){xmlhttp = new XMLHttpRequest();}
else if (window.ActiveXObject) {
try {xmlhttp = new ActiveXObject("Msxml3.XMLHTTP");}
catch (e) {
try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
}
}
if (xmlhttp){
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
getData(xmlhttp.responseXML)
}
}
xmlhttp.open("GET", "url",true);
xmlhttp.send(null);
}
}
}
3. Est-il réellement necessaire d'écrire toute les variantes du ActiveXObject pour ie, (Msxml2.XMLHTTP, Msxml3.XMLHTTP), j'ai vu par exemple des truc comme ça:
try {xmlhttp = new ActiveXObject("Msxml3.XMLHTTP");}
catch (e) {
try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
}
Apparament c'est lié au differentes version des parser xml d'Explorer
mais est ce un luxe inutile ou ça a vraiment un avantage?
4. Toujours pour ie, j'ai vu sur OpenWeb, qu'ils utilisent des /*@cc_on comme comentaires conditionnels ie, j'aime pas voir c'est signes, alors je préfére tester les methodes, mais bon comme c'est OpenWeb, je me demande si c'est pas mieux...
Merci a vous si arrivez a dissiper ces doutes pour que je puisse charger mes xml dans en toute sérénité. [code]
Modifié par matmat (25 May 2007 - 16:30)