XMLHttpRequest
Definition
Der XMLHttpRequest ist ein Konstrukt innerhalb der meisten aktuellen Browser, der einer Scripting Engine wie z.B. JavaScript die Funktionalitäten eines HTTP-Clients ermöglicht und damit z.B. die Übertragung von Formulardaten oder das Abfragen von Daten von einem Server. Dieses Konstrukt ist die Kerntechnologie in vielen Ajax-Anwendungen und ermöglicht es dynamisch Daten vom Webserver abzurufen.
Geschichte
Die erste Implementierung eines XMLHttpRequests findet sich im Microsoft Internet Explorer 5 von 1998 als ActiveX-Objekt. Andere Browserhersteller haben nach und nach eine eigene Implementierung dieser API in ihre Browser integriert. Mozilla und alle anderen Gecko-Derivate verfügen seit Version 1.0 über ein solches Konstrukt, Opera seit Version 7.6 Beta und Safa seit Version 1.2. Da sich der Aufruf des XMLHttpRequests in den verschiedenen Browsern unterscheidet wird gerade (Stand: 01.07.2006) vom W3C-Konsortium an einer Standardisierung gearbeitet.
Beispiele
Um ein XMLHttpRequest-Objekt browserunabhängig zu generieren wird der folgende JavaScript-Code benötigt:
function loadXMLDoc(url) { //Hier wird getestet ob der Browser ein integriertes XMLHttpRequest-Objekt besitzt
if (window.XMLHttpRequest) { req = new XMLHttpRequest();
// Registrierung des Event-Handlers am Objekt req.onreadystatechange = processReqChange;
// Absetzen des Requests req.open("GET", url, true); req.send(null); } else if (window.ActiveXObject) { // ... oder ob das Objekt per ActiveX (Internet Explorer} implementiert werden muss
req = new ActiveXObject("Microsoft.XMLHTTP"); // Registrierung des Event-Handlers am Objekt req.onreadystatechange = processReqChange;
// Request absetzen req.open("GET", url, true); req.send(); }
}
Ist keiner der Aufrufe erfolgreich können keine Ajax-Funktionalitäten angeboten werden!
Quellen
- W3C Working Draft, The XMLHttpRequest Object, [1]
- Wikipedia XMLHttpRequest [2]
- Olaf Bergmann, Carsten Bormann, AJAX - Frische Ansätze für das Web-Design, 1. Auflage 2005, TEIA AG Lehrbuch Verlag Berlin 2005; ISBN 3-935539-26-3 (Online-Version des Buchs);
- Stefan Mintert, Zwei Helden, IX 11 2005 S.56-59,Heise Verlag Hannover;