XHR

XHR

XMLHttpRequest ist eine API zum Transfer von beliebigen Daten über das Protokoll HTTP. Dabei können sämtliche HTTP-Anfragemethoden (unter anderem GET, POST, HEAD, PUT) verwendet werden. Wenn eine Anfrage XML-Daten liefert, kann XMLHttpRequest diese alternativ als Plaintext oder als DOM-Baumstruktur zurücksenden. Letzteres eignet sich beispielsweise dazu, mit Web Services zu kommunizieren. XMLHttpRequest kann aus JavaScript, JScript und VBScript heraus verwendet werden und bildet einen Grundbestandteil der Ajax-Technik.

Die Schnittstellenbeschreibung des XMLHTTPRequest-Objekts gemäß dem W3C Standardisierungs-Vorschlag.

XMLHttpRequest ermöglicht einem Skript einer Webseite, Daten dynamisch vom Webserver abzurufen, ohne dass dazu die Seite neu geladen werden müsste. Dies war zuvor nur durch den Einsatz unsichtbarer Frames/IFrames oder mit On-Demand JavaScript[1] möglich. Da XMLHttpRequest Anfragen asynchron verarbeiten kann, muss ein Skript nicht warten, bis die Anfrage beantwortet ist, sondern kann solange andere Aufgaben abarbeiten.

Geschichte

Die XMLHttpRequest-Technik wurde ursprünglich von Microsoft entwickelt und steht im Internet Explorer seit Version 5.0 als ActiveX-Objekt zur Verfügung. Viele Browser unterstützen diese API, neben dem Internet Explorer[2] sind das Mozilla und alle anderen Gecko-Derivate (ab Version 1.0)[3], Opera (ab Version 7.6 Beta) und Safari (ab Version 1.2)[4], Konqueror und alle anderen KHTML-Derivate.

Trotz der guten Verfügbarkeit der API in neueren Browsern wird an ihr auch Kritik geübt, da es schwierig ist, Webseiten, die XMLHttpRequest einsetzen, auch älteren Browsern in vollem Umfang zugänglich zu machen. Dies erklärt auch, warum XMLHttpRequest erst in neuerer Zeit vermehrt zum Einsatz kommt. Ein weiterer Kritikpunkt ist, dass sich Web-Anwendungen, die auf XMLHttpRequest setzen, nur schwer barrierefrei umsetzen lassen.

Wie aus den einzelnen Schnittstellenbeschreibungen der verschiedenen XMLHttpRequest-Implementierungen hervorgeht, sind diese nicht vollständig zueinander kompatibel. Aus diesem Grund wurde unlängst eine einheitliche Definition für das XMLHttpRequest-Objekt durch das W3C zur Standardisierung vorgeschlagen.[5] Eine zweite Spezifikation, die Domain-übergreifende Abfragen (d. h. die Daten, die das Skript abruft, befinden sich auf einer anderen Domain als es selbst) erlauben und damit über die bisherigen Implementierungen hinausgehen soll, ist beim W3C bereits in Arbeit.[6]

Codebeispiele (JavaScript)

Verwendung von XMLHttpRequest in Windows Internet Explorer (ab v5):

var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

Verwendung von XMLHttpRequest in Mozilla, Opera, Safari, Konqueror und Internet Explorer (ab v7):

var xmlHttp = new XMLHttpRequest();

Das folgende Beispiel ruft eine Ressource auf derselben Domain über XMLHttpRequest auf und gibt den Inhalt in einem Meldungsfenster aus:

var xmlHttp = null;
// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
if (typeof XMLHttpRequest != 'undefined') {
    xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
    // Internet Explorer 6 und älter
    try {
        xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try {
            xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            xmlHttp  = null;
        }
    }
}
if (xmlHttp) {
    xmlHttp.open('GET', 'beispiel.xml', true);
    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
            alert(xmlHttp.responseText);
        }
    };
    xmlHttp.send(null);
}

Quellen

  1. Ajax Patterns – On-Demand Javascript
  2. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für den IE
  3. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Mozilla
  4. Schnittstellenbeschreibung des XMLHttpRequest-Objekts für Safari
  5. Schnittstellenbeschreibung des XMLHttpRequest-Objekts vorgeschlagen durch das W3C
  6. W3C-Vorschlag für „XMLHttpRequest 2“ / „cross-site extensions to XMLHttpRequest“

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XHR — XMLHttpRequest XMLHttpRequest est un objet ActiveX ou Javascript qui permet d obtenir des données au format XML, JSON, mais aussi HTML, ou encore texte simple à l aide de requêtes HTTP. On explique le succès récent de l objet et la très grande… …   Wikipédia en Français

  • XHR — XMLHTTP (XMLHttpRequest, XHR) набор API, используемый в языках JScript, VBScript и им подобных для пересылки различных данных (XHTML, HTTP протоколу между браузером и веб сервером. Позволяет осуществлять HTTP запросы к удаленному серверу без… …   Википедия

  • Xhr — …   Deutsch Wikipedia

  • XHR — eXtreme Hot Rod (Governmental » Transportation) …   Abbreviations dictionary

  • xhr — ISO 639 3 Code of Language ISO 639 2/B Code : ISO 639 2/T Code : ISO 639 1 Code : Scope : Individual Language Type : Ancient Language Name : Hernican …   Names of Languages ISO 639-3

  • XHR — abbr. Xplizit Hardcore Recording …   Dictionary of abbreviations

  • Comet (programming) — Comet is a web application model in which a long held HTTP request allows a web server to push data to a browser, without the browser explicitly requesting it.[1][2] Comet is an umbrella term, encompassing multiple techniques for achieving this… …   Wikipedia

  • XMLHTTPRequest — est un objet ActiveX ou Javascript qui permet d obtenir des données au format XML, JSON, mais aussi HTML, ou encore texte simple à l aide de requêtes HTTP. On explique le succès récent de l objet et la très grande utilisation qui en est faite… …   Wikipédia en Français

  • XMLHttp — XMLHttpRequest XMLHttpRequest est un objet ActiveX ou Javascript qui permet d obtenir des données au format XML, JSON, mais aussi HTML, ou encore texte simple à l aide de requêtes HTTP. On explique le succès récent de l objet et la très grande… …   Wikipédia en Français

  • XMLHttpRequest — est un objet ActiveX ou Javascript qui permet d obtenir des données au format XML, JSON, mais aussi HTML, ou encore texte simple à l aide de requêtes HTTP. On explique le succès récent de l objet et la très grande utilisation qui en est faite… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”