Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. XMLHttpRequest — Wikipédia
XMLHttpRequest — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

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.

Avantages et inconvénients

[modifier | modifier le code]

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[1], 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[2] 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.

Le point de vue du programmeur

[modifier | modifier le code]

Création d'un objet XMLHttpRequest

[modifier | modifier le code]

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();

Chargement de code exécutable

[modifier | modifier le code]

Du code JavaScript présent dans la page chargée via XMLHttpRequest ne sera pas exécuté au moment du chargement.

Il faut insérer le code JavaScript chargé dans la page courante pour qu'il soit exécuté.

Le code suivant peut aussi exécuter le JavaScript présent entre des balises <script></script> dans la page fille, après l'avoir chargé comme décrit précédemment :

if (XHR.readyState == 4)
{
	document.getElementById('contenu').innerHTML = XHR.responseText;
	var js = document.getElementById('contenu').getElementsByTagName('script');
	for( var i in js )
	{
		eval(js[i].text);
	}
}

Historique

[modifier | modifier le code]

XMLHttpRequest a d'abord été développé par Microsoft, en tant qu'objet ActiveX, pour Internet Explorer 5.0. (septembre 1998). Il a ensuite été repris et implémenté successivement sous Mozilla 1.0 (mai 2002), Safari 1.2 (février 2004), Opera 7.60 TP1[3] (août 2004) puis Konqueror 3.4 (mars 2005).

En avril 2006, il a été proposé pour devenir une recommandation[4] du W3C.

L'utilisation de XMLHttpRequest nécessite l'utilisation du langage JavaScript.

Les navigateurs l'implémentent de différentes façons : ActiveX pour Internet Explorer, objet pour les autres. La création de l'objet se fait donc différemment selon le navigateur. De plus, pour créer l'ActiveX sous Internet Explorer, il est nécessaire de tester plusieurs versions. Toutefois, après la création de l'objet, les méthodes et attributs sont les mêmes pour tous les navigateurs.

Microsoft a été le premier à incorporer (septembre 1998) des fonctionnalités XMLHttp dans son navigateur web Internet Explorer (5 à 7) sous forme d'un ActiveX (Internet Explorer < 7) sous le nom MSXML.

Les développeurs du projet Mozilla ont alors implémenté leur version de XMLHTTP sous le nom XMLHttpRequest dans la version Mozilla 1.0 (mai 2002). D'autres navigateurs ont ensuite implémenté XMLHttp à leur tour : Safari 1.2 (février 2004), Konqueror 3.4 (mars 2005), Opera 8.0 (avril 2005), icab 3.0b352.

Le World Wide Web Consortium essaie alors de standardiser les API (Interface de programmation) en publiant les spécifications de l'API dans sa version 1 sous le nom XMLHttpRequest le 15 avril 2007 et version 2 le 25 février 2008. Ainsi plusieurs implémentations de XMLHttpRequest existent. Pour supporter toutes ces versions une API javascript (AJAX) de haut niveau permet de faire abstraction des différentes implémentations et versions de XMLHttpRequest.

Toutefois à cette époque (en 2007), XMLHttpRequest a été critiqué car il nuisait à l'accessibilité du web.

La norme XMLHttpRequest a un successeur, XMLHttpRequest Level 2 et d'autres technologies le remplacent également:

  • Le W3C avait proposé Access control pour échanger des données avec des serveurs sur des domaines différents,
  • Microsoft avait proposé XDomainRequest depuis Internet Explorer 8 maintenant remplacé par la version 2 du standard.
  • WebSocket offre les possibilités de l'objet et bien plus.

À voir aussi

[modifier | modifier le code]

Articles connexes

[modifier | modifier le code]
  • Ajax
  • Cadre d'Application Ajax
  • Gears
  • WebSocket

Liens externes

[modifier | modifier le code]
  • (en) caniuse - Can I use XMLHttpRequest advanced features (L2) ?

Notes et références

[modifier | modifier le code]
  1. ↑ site Mozilla (MDN) - API XMLHttpRequest
  2. ↑ If items in a managed widget are loaded, for example, via the XMLHttpRequest object, and not present in the DOM at all times, authors should use aria-level, aria-posinset and aria-setsize, and ensure that aria-owns is not required to convey membership with the widget.
  3. ↑ « Changelog for Opera 7.60 Technical Preview 1 for Windows », 21 janvier 2012 (version du 21 janvier 2012 sur Internet Archive)
  4. ↑ (fr) L'objet XMLHttpRequest, ou (en) W3C - XMLHttpRequest Working Draft
v · m
API Web
Côté serveur
Protocole de communication
  • CGI
  • SCGI
  • FCGI
  • AJP
  • WSRP
  • WebSocket
APIs serveur
  • C NSAPI (en)
  • C ASAPI
  • C ISAPI
  • COM ASP
  • Servlet
  • container
  • CLI OWIN (en)
  • ASP.NET Handler (en)
  • Python WSGI
  • Ruby Rack
  • JavaScript JSGI (en)
  • Perl PSGI
  • Portlet container
Modules apaches
  • mod_jk
  • mod_lisp (en)
  • mod_mono (en)
  • mod_parrot (en)
  • mod_perl
  • mod_php
  • mod_proxy (en)
  • mod_python (en)
  • mod_wsgi
  • mod_ruby (en)
  • Phusion Passenger
Sujets
  • Ressource du World Wide Web vs. Service web
  • Open API (en)
  • Webhook
  • Serveur d'applications
  • Scripting
Côté client
W3C
  • HTML5 audio (en)
  • Canvas
  • CORS
  • DOM
  • DOM events (en)
  • File (en)
  • Geolocation (en)
  • IndexedDB
  • SSE
  • SVG
  • Video
  • WebRTC
  • WebSocket
  • Web messaging (en)
  • Stockage web local
  • WebAuthn
  • Web worker (en)
  • XMLHttpRequest
Khronos
  • OpenCL
  • WebGL
Autres
  • Gears
  • Web SQL Database (formerly W3C)
Sujets
  • Page web dynamique
  • Open Web Platform (en)
  • Rich Internet application
  • icône décorative Portail de l’informatique
  • icône décorative Portail d’Internet
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=XMLHttpRequest&oldid=223348120 ».
Catégories :
  • Hypertext Transfer Protocol
  • AJAX
  • JavaScript
  • Microsoft
Catégories cachées :
  • Article contenant un appel à traduction en anglais
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés
  • Portail:Internet/Articles liés
  • Portail:Médias/Articles liés
  • Portail:Société/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id