XMLHttpRequest (häufig als XHR abgekürzt ) ist ein in JavaScript zugängliches Browserobjekt , mit dem Sie mithilfe von HTTP- Anforderungen Daten in XML , JSON , aber auch HTML oder sogar einfachem Text abrufen können .
Der Hauptvorteil liegt auf der asynchronen Seite. Die gesamte Seite muss nicht mehr vollständig neu geladen werden, wenn ein Teil geändert werden muss. Dies spart Zeit und verbessert die Interaktion mit dem Server und damit dem Client.
Die Nachteile sind:
Der dynamische Inhalt, der durch die Verwendung von JavaScript angezeigt wird, erklärt, warum der Browser nicht das gleiche Verhalten wie eine vollständig geladene HTML- Seite haben kann (Speichern von Links, Lesezeichen, Zurück-Schaltfläche).
Andere Unterschiede bestehen:
Was auch immer der Browser ist:
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();JavaScript-Code auf der über XMLHttpRequest geladenen Seite wird beim Laden nicht ausgeführt.
Sie müssen den geladenen JavaScript-Code in die aktuelle Seite einfügen, damit er ausgeführt werden kann.
Der folgende Code kann auch das zwischen <script> </ script> -Tags auf der untergeordneten Seite gefundene JavaScript ausführen, nachdem es wie zuvor beschrieben geladen wurde:
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); } }XMLHttpRequest wurde zuerst von Microsoft als ActiveX- Objekt für Internet Explorer 5.0 entwickelt. (September 1998 ). Es wurde dann nacheinander unter Mozilla 1.0 übernommen und implementiert (Mai 2002), Safari 1.2 (Februar 2004), Opera 7.60 TP1 (August 2004) dann Konqueror 3.4 (März 2005).
Im April 2006 wurde vorgeschlagen, eine W3C- Empfehlung zu werden .
Die Verwendung von XMLHttpRequest erfordert die Verwendung der JavaScript-Sprache.
Browser implementieren es auf verschiedene Arten: ActiveX für Internet Explorer, Objekt für andere. Die Erstellung des Objekts erfolgt daher je nach Browser unterschiedlich. Um ActiveX in Internet Explorer zu erstellen, müssen außerdem mehrere Versionen getestet werden. Nach dem Erstellen des Objekts sind die Methoden und Attribute jedoch für alle Browser gleich.
Microsoft war der erste (September einzuarbeiten 1998 ) XMLHttp Funktionalität in seine Internet Explorer (5 bis 7) Web - Browser in Form eines ActiveX (Internet Explorer <7) unter dem Namen MSXML.
Die Entwickler des Mozilla- Projekts implementierten dann ihre XMLHTTP-Version unter dem Namen XMLHttpRequest in Mozilla Version 1.0 (Mai 2002). Andere Browser implementierten dann wiederum XMLHttp: Safari 1.2 (Februar 2004), Konqueror 3.4 (März 2005), Opera 8.0 (April 2005), icab 3.0b352.
Das World Wide Web Consortium versucht dann, die API (Programming Interface) zu standardisieren, indem es die API-Spezifikationen in seiner Version 1 unter dem Namen XMLHttpRequest on veröffentlicht15. April 2007 und Version 2 auf 25. Februar 2008. Somit existieren mehrere Implementierungen von XMLHttpRequest. Um all diese Versionen zu unterstützen, können Sie mit einer High-Level- Javascript-API ( AJAX ) die verschiedenen Implementierungen und Versionen von XMLHttpRequest ignorieren.
Zu diesem Zeitpunkt (2007) wurde XMLHttpRequest jedoch kritisiert, da es die Zugänglichkeit des Webs beeinträchtigte .
Der XMLHttpRequest-Standard hat einen Nachfolger, XMLHttpRequest Level 2 und andere Technologien ersetzen ihn ebenfalls: