Asynchronous Javascript and XML (AJAX)
Eintrag zuletzt aktualisiert am: 30.04.2018
.jpg)
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/