Concept

XMLHttpRequest

Résumé
XMLHttpRequest (souvent abrégé XHR) est un objet du navigateur accessible en JavaScript qui permet d'obtenir des données au format XML, JSON, mais aussi HTML, ou même un simple texte à l'aide de requêtes HTTP. L'avantage principal est dans le côté asynchrone. La page entière ne doit plus être rechargée en totalité lorsqu'une partie doit changer, ce qui entraîne un gain de temps et une meilleure interaction avec le serveur et donc le client. Les inconvénients résident dans le fait que : XMLHttpRequest en version originale, avant la version 2, ne pouvait se connecter qu'à un seul domaine serveur en utilisant le protocole HTTP (ou HTTPS) ; les internautes à navigation « spéciale » (notamment via l'utilisation d'un navigateur vocal) ont du mal à savoir ce qui doit être lu (ce qui a changé) sur la page : c'est un problème d'accessibilité (il y a des spécifications dans la norme WAI-ARIA pour éviter ce genre de problèmes). Le contenu dynamique affiché par l'utilisation de JavaScript explique pourquoi le navigateur ne peut pas avoir le même comportement qu'une page html chargée dans sa totalité (enregistrement des liens, marque-page, bouton retour). D'autres différences existent : le débogage du JavaScript est pratiquement impossible en utilisant une fenêtre (alert), une zone div ou la ligne de commande (console), mais des outils comme Chrome, Firebug ou Visual studio améliorent le débogage ; le nombre de requêtes pouvant s'exécuter en même temps dépend du navigateur. Quel que soit le navigateur : function createXhrObject() { if (window.XMLHttpRequest) return new XMLHttpRequest(); if (window.ActiveXObject) { var names = [ "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP" ]; for(var i in names) { try{ return new ActiveXObject(names[i]); } catch(e){} } } window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest."); return null; // non supporté } xhr = createXhrObject(); Du code JavaScript présent dans la page chargée via XMLHttpRequest ne sera pas exécuté au moment du chargement.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.