Das Akronym Ajax steht für Asynchronous JavaScript and XML. Ajax ist Hintergrundkommunikation zwischen JavaScript und Webserver, während eine Webseite am Bildschirm angezeigt wird.

Für Ajax ist es wichtig zu verstehen, wie die HTTP-Kommunikation üblicherweise abläuft. Durch Anklicken eines Links, Eintippen einer Web-Adresse oder Auswählen eines Bookmarks sendet der Browser des Benutzers einen sogenannten HTTP-Request los. Das HTTP-Protokoll muss sich nicht darum kümmern, wie die Anfrage zum gemeinten Webserver gelangt. Dies übernimmt das TCP-Protokoll. Der aufgerufene Webserver beantwortet das GET-Kommando mit einem Response-Kommando. Das Response-Kommando besteht in jedem Fall aus einem HTTP-Statuscode sowie einem HTTP-Header, bestehend aus einem oder mehreren Header-Feldern.

Kommunikation zwischen Browser und Webserver findet also dann statt, wenn der Browser eine neue URL-Adresse vom Webserver anfordert. Das kann etwa eine HTML-Webseite sein, die auch noch weitere URLs nachlädt, beispielsweise von Grafiken oder Flashmovies, die im HTML-Code der aufgerufenen Seite referenziert sind. Sind jedoch alle diese Datenressourcen angefordert und übertragen, gibt es bis zur nächsten typischen Anwenderaktion (Link klicken, URL-Adresse eintippen, Bookmark aufrufen) normalerweise keine weitere Kommunikation mehr zwischen Browser und Webserver – es sei denn, Ajax kommt ins Spiel!

Mit Ajax erhält JavaScript eine weitere wichtige Arbeitsschnittstelle: es kann über HTTP mit einem Webserver kommunizieren, genauso, wie der Browser es selbst tut. Dadurch wird es möglich, HTTP-Requests an JavaScript-Code zu binden und über HTTP erhaltene Daten über die DOM-Schnittstelle dynamisch in die bereits angezeigte Webseite zu integrieren.

Das Sicherheitskonzept von Ajax sieht vor, dass ein JavaScript, welches das XML-HTTP-Objekt einsetzt, vom gleichen Webserver kommen muss wie das serverseitige Script, das es aufruft. Es ist also nicht möglich, durch ein selbstgebasteltes JavaScript via Ajax ein serverseitiges Script auf einem beliebigen Webserver zu starten. Nur durch spezielle Cross-Domain-Lösungen ist so etwas möglich.

Die Entwicklungen eines entsprechenden Script-Objekts gehen auf Microsoft zurück. Bereits 1997 verfügte der damalige MS Internet Explorer 4.0 über eine „Remote-Scripting-Komponente“, die allerdings nur mit dem hauseigenen Webserver Exchange funktionierte. Seit Produktversion 5.0 (1999) lässt sich im Internet Explorer ein XML-HTTP-Objekt in Form einer ActiveX-Komponente ansprechen. Seit Version 7.0 kennt der Internet Explorer ebenso wie alle übrigen heute verbreiteten Browser, also etwa Chrome, Firefox, Safari oder Opera, ein ActiveX-unabhängiges XML-HTTP-Objekt.

jQuery bügelt dabei nicht nur historische Uneinheitlichkeiten in der Implementierung der einzelnen Browser aus, sondern stellt leistungsfähige Funktionen zur Verfügung, die das Programmieren von Ajax-Requests vereinfachen.

Ajax funktioniert nur in HTTP-Umgebung

Die nachfolgenden Beispiele funktionieren nicht mit lokal gespeicherten Dateien ohne Webserver. Um die Beispiele zu testen, ist Webspace im Internet oder ein lokal installierter und laufender Webserver erforderlich.