Baukästen fürs Ajax-Development
Ajax ist nicht die einzige Möglichkeit, sogenannte «Rich Web Applications» zu entwickeln. Die gängigste Alternative zur Entwicklung hochinteraktiver Anwendungen im Web-Browser ist die Flash-Technologie von Adobe, und mit User-Interface-Standards wie XAML und XUL lassen sich ebenfalls ansprechende Oberflächen erstellen. Für Entwicklungen, die in mehr oder weniger allen Browsern anstandslos laufen und nach dem Motto «Zero Footprint» völlig auf Plug-ins oder andere clientseitige Zusatzsoftware verzichten sollen, kommt man um Ajax aber nicht herum.
Einfach, aber kompliziert
Das Prinzip von «Asynchronous Javascript and XML», wofür die Abkürzung Ajax eigentlich steht, klingt einfach: Damit nicht bei jeder Änderung an den angezeigten Daten und Kontrollelementen die gesamte Webseite neu geladen werden muss, nutzt der Ajax-Programmierer eine geschickte Technologiemischung aus HTTP-Kommunikation, JavaScript, DHTML und einem Datenaustauschformat. Dazu greift die Webseite auf eine in JavaScript formulierte, clientseitige «Ajax-Engine» zurück, die für das Absetzen der passenden HTTP-Requests, die Verarbeitung der vom Server zurückgelieferten Daten und ihrer Weiterleitung an die passenden DHTML-Objekte auf der Seite sorgt.
Auf der elementarsten Ebene benötigt der Ajax-Programmierer somit Kenntnisse einer erklecklichen Anzahl unterschiedlicher Techniken:
- Ein Mechanismus zur asynchronen Kommunikation zwischen Browser und Webserver: Das XMLHttpRequest-Objekt.
- Eine vom Browser unterstützte Sprache für Aufbau und Analyse der Meldungen zum und vom Webserver und für passende Eingriffe in den DOM-Baum des Browser: JavaScript.
- Eine Markup-Sprache zur Festlegung der Grundstruktur der Seite: DHTML.
- Ein Datenformat für die Meldungen, die zwischen Browser und Server ausgetauscht werden: Im strengen Sinn der Abkürzung Ajax wird dazu XML eingesetzt, zunehmend kommt aber das einfacher verständliche Format JSON (JavaScript Object Notation) in Mode.
Allein die Kombination der verschiedenen Technologien und Protokolle macht deutlich, dass Ajax im Detail sehr rasch ziemlich kompliziert werden kann. Es ist wie generell bei der Programmierung: Das Idiotenbeispiel «Hello World» ist schnell verstanden und ebenso schnell umgesetzt, hinter einer nutzbringenden Real-World-Anwendung steckt aber einiges mehr an Know-how und Entwicklungsaufwand.
Ein Webdesigner, der ein bisschen JavaScript beherrscht und per DHTML einfache Effekte gestalten kann, ist mit der Ajax-Programmierung völlig überfordert, und auch der gestandene Webentwickler beschäftigt sich lieber mit der Funktionalität seiner Anwendung als mit den Low-Level-Details von HTTP, XML und DOM. Dies gilt umso mehr, als bei Webanwendungen auch die nach wie vor uneinheitliche Implementation der verschiedenen Browser punkto DOM, JavaScript und Rendering der HTML-Elemente berücksichtigt werden muss.
Populäre Ajax-Frameworks