Web 2.0-Technologie

Wie funktioniert AJAX?

Hans-Christian Dirscherl ist Redakteur der PC-Welt.

Das unterscheidet AJAX von der typischen Browser-Server-Kommunikation

Bei der klassischen Kommunikation zwischen Client-Rechner und ServerServer lädt der Browser auf dem PC des Anwenders jeweils die gesamte Website neu, wenn Daten übertragen werden. Sie erkennen das Neuladen sofort: Die Seite baut sich neu auf. Anders bei AJAX: Hier kommunizieren Browser und Server fortwährend miteinander und zwar im Hintergrund. Das hat zur Folge, dass Sie den Datenaustausch zwischen Ihrem Rechner und dem Server keineswegs sofort erkennen können. Denn anders als beim klassischen Surfen wird nicht jedes Mal eine neue Website im Browser geladen beziehungsweise die vorhandene Seite erkennbar aktualisiert, sondern eben nur Daten nachgeladen und die Antwort des Servers wird mit Javascript/DHTML-Mitteln (Dynamic HTML) in die Website eingefügt. Damit das funktioniert, ist nur ein Javascript-fähiger Browser erforderlich, ein spezielles Plugin, wie zum Beispiel bei Adobe Flash oder MicrosoftMicrosoft Silverlight, muss dagegen nicht installiert werden. Alles zu Microsoft auf CIO.de Alles zu Server auf CIO.de

Tipp für Neugierige: Damit Sie vom ständigen Datenstrom doch etwas mitbekommen, benötigen Sie einen Netzwerksniffer. Neben separaten Tools wie Wireshark oder Linux-Befehlen wie tcpdump können Sie hierzu auch ein bequemes Add-on wie Live HTTP Headers in Firefox installieren.

Bei AJAX werden nur exakt die Daten nachgeladen, die tatsächlich für eine bestimmte Aufgabe benötigt werden. Beispielsweise neues Kartenmaterial bei GoogleGoogle Maps. Oder eine automatische Ergänzung für eine Tastatureingabe, die der Anwender in einem Webformular macht. Alles zu Google auf CIO.de

AJAX wirkt sich enorm auf die Aufgabenverteilung zwischen Client und Server aus. Einige Aufgaben, die bisher auf dem Server erledigt wurden, werden jetzt im Browser auf dem Rechner des Anwenders gemacht. Zwar war das bei Javascript in beschränktem Umfang auch jetzt schon möglich. So konnte man beispielsweise Benutzereingaben clientseitig auf Plausibilität prüfen (wodurch allerdings die zusätzliche serverseitige Validierung der Eingaben aus Sicherheitsgründen keineswegs überflüssig wurde). Doch unter AJAX hat die clientseitige Rechenarbeit ganz andere Ausmaße erreicht. Die Programmiersprache Javascript läuft hier richtig zur Hochform auf und wird nicht, wie so oft in der Vergangenheit, für nervtötende Animationen und Popups missbraucht.

Für den Anwender verschwimmen bei einer AJAX-Anwendung die Grenzen zur Desktop-Anwendung. Während man es sonst gewohnt ist, dass der Browser erst „reagiert“, wenn man die Website abschickt (zum Beispiel, wenn man ein Formular ausgefüllt und auf den Versenden-Button gedrückt hat), reagiert eine AJAX-Anwendung sozusagen in "Echtzeit". Bei Google Suggest beispielsweise gibt man Buchstaben ein und bekommt sofort Vorschläge angezeigt für die Begriffe, die man eigentlich sucht. Die typische Wartezeit entfällt, weil im Hintergrund ständig Daten ausgetauscht und nachgeladen werden.

Nicht nur Vorteile

Allerdings gibt es aus Anwendersicht auch einen Nachteil: Der Zurück-Button im Browser funktioniert bei AJAX-Seiten nicht wie erwartet. Da ja nicht jedes Mal eine neue Seite geladen wird, gibt es innerhalb der AJAX-basierten Kommunikation auch keine Möglichkeit, eine Seite zurück zu gehen. Hier muss der Anwender also umdenken. Allerdings gibt es von Programmiererseite her durchaus Möglichkeiten, eine Zurück-Funktion zu improvisieren. Ähnlich verhält es sich mit der Bookmark-/Lesezeichen-Funktion, die grundsätzlich bei AJAX auch nicht so funktioniert wie bei normalen HTML-Seiten. Abhilfe schaffen hier allerdings fertige Frameworks - dazu später mehr.

Auf der nächsten Seite werfen wir einen Blick auf technische Aspekte
.

Zur Startseite