Ajax


Der begriff AJAX kam das erste mal im Februar 2005 in einem Artikel von Jasse James Garnet auf, dieser beschreibt AJAX als Asynchronous Java Script and XML. Die Idee existiert in vergleichbarer form schon seit 1998. Eine auf dem von Microsoft entwickeltem Romte-Scripting-Server Komponente war die Basis dafür. Später wurde dies durch das Outlook Webacces team verfeinert. Als Google im Jahr 2005 mit Gmail, Google Maps und weiteren Ajax-Basierenden Anwendungen den markt "Stürmte" war auch die AJAX Technologie in aller Munde.

Ajax Technologien

  • HTML
  • DOM, Document Object Model
  • Java Script
  • XMLHttpRequest - Objekt
  • JSON
  • XML
  • Css
Es gibt noch einige Technologien die mit AJAX in verbindung gebracht und verwendet werden, ich habe iher die meiner Meinung nach wichtigsten aufgelistet.

Betrachtet man nun die Server Client verbingung bei einer Herkömmlichen web Anwendung oder Page so bemerkt man Das der Client immer auf den Response des Servers warten muss.


Betrachtet man nun den verlauf einer AJAX anwendung bemerkt man dass die Abstände viel kürzer geworden sind, ebenso ist es mit AJAX m%ouml;glich nur die Daten anzufordern die gerade dringend nötig sind dies wird auch als großer vorteil einer Ajax-Webanwendung bezeichnet.
Ein Request eine Clients läuft also bei einer AJAX anwendung folgendermaßen ab: Der Client schickt eine Anfrage diese wird von der AJAX-Engine verarbeite. Diese Schickt ihm eine Antwort während dessen kann der klient eine Weitere Anfrage schicken ohne auf die Antwort der anderen warten zu müssen.

Die Ajax Plattfotm

Client-Plattform Die Umsetzung innerhalb des Webbrowsers erfolgt in den meisten Fällen mit der Hilfe einer umfangreichen Funktionalität auf der Basis von JavaScript und dem XMLHttpRequest-Objekt. Dabei lassen sich zwei Kategorien von Plattformen unterscheiden:

Direkte Ajax-Implementierungen: Diese stellen auf dem Client ein API zur direkten Kommunikation von Daten zur Verfügung. Dazu ist auf dem Server neben der initial angezeigten Seite ein weiterer Einstiegspunkt zur Übermittlung der Daten zu realisieren.

Indirekte Ajax-Implementierungen: Dabei werden neue HTML-Fragmente vom Server an den Client gesendet, um die vorhandene Seite zu ergänzen oder Teile davon zu ersetzen. Meist wird dazu auf dem Server die komplette anzuzeigende Seite neu aufgebaut, aber nur die relevanten Unterschiede zum Client übertragen.

Beide Verfahren haben Vor- und Nachteile. Während die direkte Verwendung oft Server-seitige Ressourcen schont, vereinfacht die indirekte Variante die Implementierung.
(Ich habe mir erlaubt diesen Absatz unverändert von Wikipedia zu übrnehmen, dies ist ein Zitat.)

Nachteile einer AJAX Anwendung

Der zurück-knopf stellt ein Problem dar da nicht gewährleistet ist ob beim Drücken des Zurückknopfes die anwendung auch wirklich in den vorhergehenden Status springt, da die Meisten Browser nur Statische HTML dateien speichern können. Dazu gibt es jedoch eine Lösung, diese basier auf InFrames.
Auch lesezeichen können nicht in der Formn verwendet werden wie es bei Statischen HTML Seiten der Fall ist. Denn das Speichern des Zustandes einer Dynamischen HTML Seite mittels einer URL ist nicht möglich dafür müssen Anker Verwendet werden.
Bei der Programmierung von AJAX sollte die dauer eines Requests berechnet werden. Denn wenn der Client nicht rechtzeitig oder nur ungenügend Antworten auf seine Anfragen bekommt, bekommt er dass Gefühl dass die Anwendung nur stockend Läuft.

Hier Browser die Ajax unterstützen
die Tabelle habe ich Wikipedia kopiert, sie stammt also nicht von mir Selbst.
Name Erste Version mit Ajax-Unterstützung Native Unterstützung Unterstützung durch ein Add-on Kommentar
Microsoft Internet Explorer 5.0 ab 7.0 ja (ActiveX-Komponente) Die Version 4.0 unterstützte erstmals XML, jedoch nicht die für Ajax notwendige XMLHttpRequest-API. Diese API wurde später als ActiveX-Komponente realisiert und ist seit Version 7.0 nativer Bestandteil des IE. Browser, die auf der Internet-Explorer-Technologie aufbauen, sind ebenfalls Ajax-kompatibel.
Mozilla Firefox 1.0 ja - Auch alle anderen auf basierenden Browser.
Opera 8.0 ja - -
Apple Safari 1.2 ja - -
Netscape 7.1 ja - -
Konqueror  ? ja - Das HTML-Rendering etc. wird durch die realisiert. Diese wird auch von Apples Browser Safari eingesetzt.
iCab 3.0 Beta ja - Ältere Versionen wie beispielsweise die Version für m68k-basierte Computer unterstützen kein Ajax.