Asynchronous Javascript and XML (AJAX)

Eintrag zuletzt aktualisiert am: 30.04.2018

Basis für Single Page Applications (SPAs) ist die Technologie Asynchronous JavaScript and XML (AJAX), die abseits der üblichen HTTP-Rundgänge (Roundtrips) Aufrufe des Webservers vom Browser ermöglicht. Der Browser löst einen AJAX-Arufruf aus gegen eine HTTP-URL. Von der URL erhält er Daten, die er zur Aktualisierung der Webseite per Document Object Model (DOM) verwendet. AJAX-Aufrufe transportieren heutzutage aber meist nicht mehr XML-Dokumente, sondern JSON-Daten.

GESCHICHTE

Der Begriff AJAX wurde erstmals im Februar 2005 von Jesse James Garrett in [http://adaptivepath.org/ideas/ajax-new-approach-web-applications/] verwendet. Wirklich neu an AJAX war aber nur der Name; die Idee der entfernten Prozeduraufrufs aus dem Browser heraus wurde erstmals im Jahr 1998 von Microsoft im Internet Explorer 4.0 in Form des Microsoft Remote Scripting (MSRS) verwendet. MSRS basierte auf einem Java Applet. Im Internet Explorer 5.0 ist später das XmlHttpRequest-Objekt erschienen, das noch heute Basis in dieser Form im Internet Explorer und anderen Browsern existiert und jetzt den Kern von AJAX bildet. Moderne Browser verwenden aber nicht mehr das XmlHttpRequest-Objekt, sondern das Fetch API [https://fetch.spec.whatwg.org/].

Implementierung von XmlHttpRequest

Im Internet Explorer ist XML-HTTP durch ein COM-Objekt (Microsoft.XmlHttp) realisiert, in Mozilla (Netspace, Firefox, Safari, etc.) durch das eingebaute Objekt XMLHttpRequest. So genannte AJAX-Frameworks vereinfachen die Handhabung stark vereinfachen und eine Abstraktion bieten, sodass aus JavaScript heraus Funktionen eines Proxies aufgerufenen werden, die auf dem Server als Funktionsaufrufe signalisiert werden.

Aufgrund der Tatsache, dass die XML-HTTP-Unterstützung im Internet Explorer ein COM-Objekt ist, können kann AJAX nur funktionieren, wenn in den Sicherheitseinstellungen des Internet Explorers für die jeweilige Zone »Script ActiveX controls marked safe for scripting« aktiviert ist.

Fetch API

Moderne Browser verwenden aber nicht mehr das XmlHttpRequest-Objekt, sondern das Fetch API [https://fetch.spec.whatwg.org/].
https://fetch.spec.whatwg.org/