11497 sujets

JavaScript, DOM et API Web HTML5

Bonsoir.
J'utilise le code ci-dessous pour créer une requête Ajax :
function getXMLHttpRequest()
     {      
try { return new XMLHttpRequest(); } catch(e) {}
var versions =
     [ 'Msxml2.XMLHTTP.6.0',
       'Msxml2.XMLHTTP.3.0',
       'Msxml2.XMLHTTP',
       'Microsoft.XMLHTTP' ] ;
for (I=0; I<4; I++)
     {
     try { return new ActiveXObject(versions[I]); } catch(e) {}
     }
return null ;
     }

Explications : J'essaie d'abord la requête actuelle (tous navigateurs confondus) puis ensuite les requêtes IE (versions historiques de la plus récente à la plus ancienne).
Je me demande s'il n'est pas possible d'alléger cette fonction, car j'ai pu constater pléthore de méthodes, personne ne faisant pareil....
Pour les versions natives, la doc microsoft conseille un try sur 'Msxml2.XMLHTTP.3.0' et par défaut choisira 'Microsoft.XMLHTTP' .
Certains développeurs font la même chose mais en utilisant le try sur 'Msxml2.XMLHTTP', alors que d'autres mettent en balance les versions 6.0 et 3.0 ignorant totalement celles qui ont précédé.
J'aimerais bien comprendre, car les anglophones très nombreux sur les forums semblent également partagés...
Cordialement.
Bonsoir,

La question légitime qu'on peut se poser est, est-ce que ça vaut vraiment la peine de faire une différenciation aussi fine ?

J'ai toujours utilisé Microsoft.XMLHTTP et sur IE8, ça fonctionne encore. Quelle sont les différences entre ces versions et sont elles vraiment importantes ?

Ca mériterait un petit tour sur la MSDN pour voir ce qui change, mais j'ai à priori l'impression que ce n'est pas tant significatif pour s'en inquiéter.

Pour info, IE9 permet l'instanciation avec window.XMLHttpRequest. Ca ne concerne donc qu'IE8 et moins.
Bonsoir,

Si vous aviez pris le temps de lire la question, vous auriez pu ensuite constater que votre "ami" n'a pas répondu ou alors à côté...Ce qui explique les "up" à la noix.

Pour votre information, l'expression "à la noix" est attribuée à Aristide Bruant, par référence au fruit du noyer qui avait depuis très longtemps la symbolique d’objet sans aucune valeur. Le prix des noix a de nos jours grimpé, néanmoins la formule a traversé les ans...

N'avez-vous donc rien d'autre à faire, pour vous ruer ainsi sur des "up à la noix" !

De toute façon, chien qui aboie ne mord pas !

Salut !... Et à l'avenir évites de tutoyer STP !
Je ne vois pas où je suis HS et j'ai l'habitude de me prendre des vents, mais merci, ça fait toujours plaisir.

IL faut se renseigner un peu sur les usages habituels d'un site communautaire avant d'y poster. Ici le tutoiement est la norme, et les up ne sont pas trop appréciés, et surtout pas quand on te pose une question à laquelle tu ne réponds même pas.

Sur ce, à bon entendeur.

P.S. ET la culture c'est comme la confiture, moins on en a, plus on l'étale.
Salut !

Je "up" et Superman intervient !
Je réponds à Superman et c'est "Catwoman" qui se réveille...

Et ma problématique dans tout ça ?...
Salut,
ton attitude ne donne pas du tout envie de te répondre ... et puis si on lit bien le 1er post, il n'y a pas de question, donc bon, à quoi bon répondre...

Enfin bon peut être que cela servira à des gens moins c** que toi ..

return new XMLHttpRequest(); -> fonctionne avec les dernières versions de IE

Msxml2.XMLHTTP.6.0 -> la dernière version qu'ils ont fait et mise à jour.
Msxml2.XMLHTTP.5.0 -> pas maintenue, du coup non recommandée.
Msxml2.XMLHTTP.4.0 -> idem
Msxml2.XMLHTTP.3.0 -> la version la plus utilisée et du coup petites mises à jour.
Msxml2.XMLHTTP -> valable pour la versions 3.0 et les versions inférieurs (2.6 et moins)
Microsoft.XMLHTTP -> microsoft est l'ancien namespace, et cela retournera la même chose que Msxml2.XMLHTTP . C'est nécessaire pour les versions d'IE inférieur à 6 ( 5.5 et moins ) qui ne connaisse pas le nouveau namespace (Msxml2).
Petit copier coller de wikipedia histoire de voir à quel point c'est vieux :
Première version 5.0 (18 mars 1999)1
Dernière version 5.5 (8 juillet 2000)
Environnement Microsoft Windows (3.1 à 2000).

Pour simplifier, ça dépend de ce que tu veux faire et de qui tu peux laisser sur le coté ( ou vision inverse de qui tu veux bien t'occuper .. )
Si tu veux t'occuper jusqu'à IE5, tu mets Microsoft.XMLHTTP.
Si tu veux gérer les version inférieur ou égale à 3, Msxml2.XMLHTTP
Seulement à partir de 3 et plus : Msxml2.XMLHTTP.6.0 puis on retombe sur Msxml2.XMLHTTP.3.0 si y a pas la 6.
Seulement la dernière ( 6 ) :Msxml2.XMLHTTP.6.0

Et au final : Ils n'ont qu'a avoir IE à jour : return new XMLHttpRequest();
Tiens voilà Batman dans son costume moulant !

Toi aussi, aucun sens de l'humour !

Susceptibles les petits geeks, non ?... Heureusement que je n'ai pas attendu ce brouillon pour avancer. Fais attention, ne te prends pas les pieds dans ta cape...

A + les clowns !