<< Themensammlung Netzwertig

Unter netzwertig veröffentlichen wir in unserem Blog Einschätzungen zu aktuellen digitalen Geschäftsmodellen und IT-Trends.

AJAX

AJAX und das Web 2.0

AJAX - eine kurze Vorstellung

Wenn man sich das Internet der Vergangenheit betrachtet, ist das Jahr 1990 mit der Einführung des World Wide Web einer der größten Meilensteine gewesen. Mit der Einführung des WWW ließen sich optisch ansprechend Inhalte präsentieren und vor allem Information miteinander verknüpfen. Allerdings war das World Wide Web in der Vergangenheit rein statisch.

Aufgrund diverser Einschränkungen, die mit statischen Seiten verbunden sind, entwickelte sich schnell eine auf dem Client laufende Programmiererwelt, die diesen Einschränkungen begegnen sollte. JavaScript, VBScript, Java-Applets, ActiveX-Controls, und diverse weitere Technologien entstanden etwa ab 1995.

Allen Technologien auf dem Client war gemeinsam, dass Sie Aktivität vom Server auf den Client verlagern sollten.

Diverse Probleme mit clientseitiger Technologie führten allerdings dazu, dass etwa ab dem Jahr 2000 wieder mehr Aktivität auf den Server zurück verlagert wurde. Proprietäre Standards sowie marktpolitische Spielereien viele Protagonisten des WWW und nicht zuletzt Sicherheitsprobleme im Client reduzierten die Akzeptanz von clientseitiger Technologie.

In der letzten Zeit hat sich aber die Hysterie um die Probleme clientseitiger Technologie gelegt und moderne Webapplikationen setzen sowohl clientseitige Technologie (heutzutage fast ausschließlich noch JavaScript) als auch serverseitige Technologie ein. Die Aufgaben in dem Client-Server-Betrieb Internet werden so verteilt, wie es sinnvoll ist.

Was ist AJAX?

Das Internet basiert bezüglich der Übertragung nun auf TCP/IP. Dies steht für Transmission Control Protocol / Internet Protocol. Dieses Transportprotokoll bezeichnet eine paketorientierte Vermittlung von Daten. Die Daten werden in kleinere Einheiten zerlegt und diese Datenpakete unabhängig voneinander vom Sender zum Empfänger geschickt. Erst beim Empfänger werden sie wieder zusammengesetzt.

Das Hauptproblem bei dieser Art der Kommunikation ist, dass keine dauerhafte Verbindung existiert. Zwar ist es möglich, auf Ebene der Anwendungsprotokolle eine virtuelle Verbindung zwischen Sender und Empfänger aufrechtzuerhalten (denken Sie an Internet-Telefonie oder aber auch Fernsteuerungsmechanismen wie Telnet oder SSH), aber allein auf Ebene des Transportprotokolls ist diese Verbindung nicht gegeben.

Nun ist das Anwendungsprotokoll des World Wide Web - HTTP - ein verbindungsloses Protokoll. Mit anderen Worten - bei diesem Protokoll wird keine virtuelle Verbindung zwischen dem Server und dem Client aufrechterhalten.

Bei dieser Art der zustandslosen Kommunikation kann ein Server bei einer Anfrage durch einen Client im Grunde nicht erkennen, ob ein Browser bereits vorher eine Anfrage abgeschickt hat.

Sie wissen aus Ihrer Erfahrung im WWW natürlich, dass auch bei Webseiten erkannt werden kann, ob ein Client bereits vorher Seiten von einem Server angefordert hat. Dieses ist in allen Fällen zwingend notwendig, in denen man sich auf einer Seite legitimieren muss, um in einem geschlossenen Bereich Inhalte sehen zu können. Aber dies wird nicht über TCP/IP beziehungsweise HTTP gewährleistet, sondern mit darauf aufsetzenden Techniken. Zum Beispiel Cookies.

Die zustandslose Kommunikation bewirkt ebenfalls, dass jeder Austausch von Informationen zwischen Client und Server die Versendung einer vollständigen neuen Webseite bedeutet. Der Server weis ja im Allgemeinen nicht, ob der Client schon mal die Webseite angefordert hat und vor allem sind Browser so gebaut, dass Sie immer eine vollständige Webseite als Antwort fordern.

Wie kommt jetzt AJAX ins Spiel?

AJAX ist nun ein Ansatz, das Problem des konventionellen World Wide Web respektive HTTP zu lösen, dass jede Datenanforderung das Versenden einer vollständigen neuen Webseite notwendig macht. Mit AJAX ist es möglich, nur den Teil einer Webseite von Server anzufordern, der auch wirklich ausgetauscht werden muss. Die Teile der Webseite, die nicht erneuert werden müssen, können dabei erhalten bleiben. Es ist offensichtlich, dass die zu versendende Datenmenge damit erheblich reduziert werden kann. Vor allen Dingen kann das Antwortverhalten von Web-Applikation bei Interaktion mit einem Anwender exorbitant beschleunigt werden.

Zurzeit werden mit AJAX beispielsweise viele Online-Kartensysteme wie Google maps realisiert. Ein Anwender wählt einen Ausschnitt aus einer angezeigten Karte und vergrößert ihn. Statt dann eine vollständige neue Webseite zu senden, wird nur in einem gewissen Teil der Webseite der vergrößerte Ausschnitt der Karte gezeigt.

Oder stellen Sie sich als Beispiel ein Webformular vor, indem der Anwender ein Autokennzeichen eingibt und nachfolgend der zugehörige Landkreis oder die zugehörige Stadt angezeigt werden soll. Bei konventionellen Web-Applikationen ist es notwendig, aufgrund der Angabe des Autokennzeichens eine vollständige neue Webseite vom Server anzufordern und dem Client anzuzeigen. Dabei müssen gegebenenfalls alte Informationen (in anderen Formularfeldern schon eingetragene Anwendereingaben zum Beispiel) erhalten bleiben. Das bedeutet, die Daten werden überflüssiger Weise zum Server geschickt und unverändert wieder zurück gesendet. Mit AJAX kann ausschließlich die neue Information vom Server angefordert und in die bestehende Webseite integriert werden. Man kann das dynamische Ergänzen von Information sogar so weit treiben, dass der Anwender bei jedem Tastendruck eine neue Information vom Server abfordert, die in der Webseite angezeigt wird. In der Praxis setzt etwa Google suggest so ein Verfahren in der Praxis um.---NEUE-SEITE---Vorläufer von AJAX

Zwar ist es auch bisher im Web schon möglich gewesen, für die Fälle, in denen nur wenige Daten in der Webseite auf Grund von bestimmten Aktionen des Anwenders ergänzt werden müssen, diese auf Vorrat zum Client zu schicken und mit Javascript beziehungsweise DHTML dynamisch in die Webseite zu integrieren. Aber für große Datenmengen ist das nicht praktikabel. Auch haben sich proprietäre Techniken wie Java-Applets, die parallel zum Browser mit dem Webserver kommunizieren konnten, nicht flächendeckend durchgesetzt. Wieder andere Techniken wie Frames werden aus anderen Gründen im Web nicht mehr toleriert.

Paralleluniversum

BuchempfehlungBei AJAX fordert man Daten erst dann an, wenn sie benötigt werden und zeigt sie in der Folge über DHTML-Effekte in den gewünschten Bereichen einer Webseite an. Bei AJAX kommunizieren dazu nicht nur der Browser und der Webserver direkt miteinander, sondern unabhängig von dieser Interaktion kann ein Objekt in der Webseite mit dem Server kommunizieren. Quasi am Browser vorbei.

Auf dieses Objekt (XMLHttpRequest) greift man dann bei JavaScript zu und nimmt die nachgeforderten Daten entgegen und schiebt sie in den gewünschten Bereich der Webseite. Zum Beispiel wenn über ein Eventhandler in der Webseite eine Funktion aufgerufen wird. Dieses XMLHttpRequest-Objekt ist der Dreh- und Angelpunkt der gesamten AJAX-Technologie.

Zudem werden rund um AJAX XHTML beziehungsweise HTML, XML, JavaScript und Style Sheets als Kerntechnologien bezeichnet.

Die auf dem Server eingesetzte Technologie ist im Rahmen des Konzepts von AJAX selbst nicht explizit festgelegt. Ob Sie dort PHP einsetzen oder ASP.NET oder Java-Servlets oder JSP. Sie sind vollkommen frei in ihrer Wahl.

Aus alt mach neu?

Wenn Sie sich die Technologien betrachten, die bei AJAX den Kern bilden, werden Sie erkennen, dass AJAX außer dem XMLHttpRequest-Objekt nur wenige wirklich neue Ansätze zeigt. Das beanstanden einige Kritiker. AJAX sei nur ein Marketingbegriff für alte Technologien. Kritiken wie "alter Wein in neuen Schläuchen" oder "kalter Kaffee" sind noch die harmloseste den Schimpfattacken, die man in diversen Foren findet. Die Befürworter hingegen argumentieren genau umgekehrt. Sie sagen, da so gut wie keine neuen Technologien erforderlich sind, ließe sich AJAX ohne größere Probleme in bestehenden Umgebungen implementieren und die Beteiligten am Web können sich ohne große Schwierigkeiten auf einen Standard einigen. Und wahrscheinlich haben die Befürworter Recht, wie der Erfolg von AJAX zeigt.

Welche Probleme wirft die AJAX-Technologie auf?

AJAX ist ohne Zweifel eine Revolution des World Wide Web. Vielleicht eine Revolution, bei der nicht unbedingt die beste denkbare Lösung den Gewinner stellt. Aber ein Kompromiss, der für alle Beteiligten nur Vorteile bringen wird. Webapplikationen, die sehr stark mit Anwendern interagieren, werden über AJAX in einem Maß beschleunigt, dass Sie an Desktop-Applikationen erinnern werden.

Das wird aber auch das Anwenderverhalten im World Wide Web verändern. Anwender werden in Zukunft aufgrund von AJAX-Applikationen "verdorben" werden. Das soll bedeuten, Sie werden bei vielen AJAX-Applikationen ein Verhalten vorgesetzt bekommen, dass sie in Zukunft dann von allen Internet-Applikation erwarten werden.

Aber selbstverständlich kann man in einem Netzwerk wie dem Internet eine konstante, fehlerfreie und schnelle Übermittlung von Daten nicht voraussetzen. Was ist, wenn das Internet "hängt "? Ersteller von Web-Applikation werden sich neue Formen bei der Interaktion mit den Anwendern und der Benutzerführung überlegen müssen. Aber AJAX wirft auch andere Probleme auf. Das Stichwort ist barrierefreies Web. Lesegeräte kommen mit dynamisch generierten Inhalten möglicherweise nicht klar. Des Weiteren werden auch Suchmaschinen mit dynamischen Inhalten Probleme haben und nicht zuletzt wird die Funktion der Lesezeichen im Browser bei AJAX-Applikationen nicht funktionieren. Ebenfalls ist das Verhalten der Zurück-Schaltfläche des Browsers bei AJAX-Applikationen ausgehebelt. Und wie bei jeder neuen Technologie werden viele Webapplikationen auf AJAX setzen, ohne dass es wirklich notwendig ist.

Für diese Probleme werden Entwicklungen rund um AJAX (insbesondere AJAX-Frameworks) nach und nach Lösungen bereitstellen oder haben sie bereits bereitgestellt. Dennoch - die Verwendung von AJAX wird in der ersten Phase eine ganze Reihe von Aufgaben aufwerfen.

Das Hauptproblem wird aber sein, dass AJAX nur dann funktioniert, wenn beim Client die notwendigen technischen Voraussetzungen gegeben sind. Wenn also JavaScript aktiviert ist, ein halbwegs moderner Browser eingesetzt wird, der das XMLHttpRequest-Objekt unterstützt, DHTML-Effekte sauber vom Browser unterstützt werden und der Anwender diese Techniken auch nicht deaktiviert hat. Gerade in vielen Firmen, in denen die Firewall die Verwendung von Javascript noch immer verbietet, werden AJAX-Applikationen auf Probleme stoßen.

Fazit

Probleme sind dafür da gelöst zu werden. Alles in allem ist AJAX eine der vielversprechensten Entwicklung des Webs, die in den letzten Jahren zu beobachten war. Nun ist es endlich möglich, mit allseits unterstützten Techniken das träge Verhalten von Web-Applikation bei der Interaktion mit Anwendern abzustellen. 

Autor: Ralph Steyer

Ralph Steyer ist Diplom Mathematiker und arbeitet seit 1995 als Freelancer. Dabei teilt sich seine Tätigkeit in Publikation (Fachautor, Fachjournalist und Übersetzer), EDV-Schulungen sowie Programmierung und Beratung auf.Daneben betreut er das Portal AJAX-NET.de rund um die Themen AJAX und Web 2.0. (http://www.ajax-net.de). Zu dem Thema AJAX sind von ihm unter anderem die Bücher "AJAX mit PHP", "AJAX mit ASP.NET und Atlas" und "AJAX mit Java-Servlets und JSP" sowie das Buch "Das Google Web Toolkit- AJAX mit Java".


Website des Autors
Frau überlegt beim Schreiben
Diese Regeln und Formulierungen helfen

Weiterlesen

Roter Hintergrund Mann mit Smarthone in der Hand
So geht's

Weiterlesen

Sie wollen ein Angebot oder die gratis Teststellung für die Unterweisung?

88 E-Learnings zu den Herausforderungen der aktuellen Arbeitswelt