juelweb augen
 
 juelweb


Webtools und Tutorials:


  Self html ~ HTML selbst erstellen ~    CGI Scripts u. Resourcen     ~ HOTSCRIPTS~   jede Menge Scripts, Applets usw.   



Thema des Monats


Was ist AJAX ?

AJAX beschreibt eine Technologie, mit der Daten zwischen Client und Server mittels JavaScript ausgetauscht werden können, ohne dass die gesamte Web-Seite neu geladen werden muss.
Der Begriff AJAX geht auf den im Februar 2005 veröffentlichten Artikel Ajax: A New Approach to Web Applications von Jesse James Garrett von der Firma Adaptive Path zurück. Dort wird die bis dahin XMLHTTPRequest genannte Technologie unter dem einprägsameren Namen AJAX (Asynchronous Javascript and XML) einem breiteren Publikum vorgestellt. Seitdem gilt AJAX als Synonym für eine Technologie zur Schaffung fortschrittlicher Web-Oberflächen.


AJAX: Vorteile und Probleme

Mit AJAX bieten sich neue, erweiterte Möglichkeiten bei der Gestaltung fortschrittlicher Web-Oberflächen. Neben all den bedeutenden Vorteilen, kann die Verwendung von AJAX aber auch zu Problemen führen, die immer mit bedacht werden sollten. Einige Vor- und Nachteile von AJAX sollen nachfolgend kurz genannt werden.
Da derzeit fast nur über die Vorteile und Möglichkeiten von AJAX gesprochen wird, werde ich nachfolgend verstärkt auf die Nachteile und Probleme von AJAX eingehen. Zwar bin auch ich davon überzeugt, dass AJAX ein enormes Potential für fortschrittliche Web-Oberflächen bietet, allerdings sehe ich auch die Gefahr, dass der Hype um AJAX dazu führt, dass immer mehr Web-Seiten AJAX in Bereichen einsetzen, wo es absolut nachteilig ist, ähnlich, wie es ursprünglich mit DHTML gewesen ist.


Vorteile
  • Seiteninhalte können durch neue Daten vom Server geändert werden, ohne dass die Seite komplett neu geladen werden muss. Damit wird die Serverlast verringert. Änderungen werden schneller sichtbar, die User bekommen schneller Feedback. Das steigert die Usability. Zudem bleibt beim Nachladen der Daten der aktuelle Zustand erhalten (Position des Cursors, von Elementen, usw.). Das vereinfacht die Programmierung.
  • Es können Oberflächen geschaffen werden, die Desktop-Applikationen ähneln. Damit können zunehmend mehr Aufgaben über Web-Applikationen erledigt werden. Das kommt der zunehmenden mobilen Nutzung zugute. Die Stärke des Webs, immer und überall verfügbar zu sein, wird damit besser ausgenutzt.
Nachteile / Probleme / Grenzen
  • AJAX setzt voraus, dass JavaScript aktiviert ist. Damit scheidet die Verwendung von AJAX für normale Web-Seiten, die auch ohne Javascript benutzbar sein müssen, weitgehend aus. Vorrangiges Einsatzgebiet für AJAX sind Web-Seiten mit Applikationscharakter, z.B. in Intranets. Auf normalen Web-Seiten sollte AJAX derzeit nur als optionales Goodie verwendet werden.
  • AJAX setzt beim Internet Explorer voraus, dass die Ausführung von ActiveX-Objekten erlaubt ist. Aus Sicherheitsgründen haben manche Benutzer/innen dieses abgeschaltet.
    Anmerkung: Der kommende IE 7 soll eine native Unterstützung von XMLHTTPRequest erhalten.
  • Die Verwendung von AJAX kann zu einem deutlich höheren Aufwand für die Client- und Serverseitige Programmierung und damit auch einen finanziellen Mehraufwand führen. Dort, wo AJAX zum Einsatz kommt, wird häufig zumindest für eine Übergangszeit auch noch eine Fallback-Lösung implementiert werden müssen, damit wichtige Teilbereiche einer Site, z.B. Formulare, auch ohne AJAX verwendet werden können. Das wird zu einem deutlichen Mehraufwand führen.
  • Die Trennung von Struktur (XHTML) und Layout (CSS) wird möglicherweise wieder aufgehoben. Die Entwicklung im Bereich Web-Frontends geht hin zu einem semantischen Web. D.h., nicht das Layout, sondern die strukturierte Darstellung der Daten in XML-Form ist vorrangig relevant. Das Layout wird weitgehend getrennt davon, je nach Ausgabemedium über CSS oder XSLT erzeugt. DHTML bedeutet das Zusammenspiel von Javascript und CSS. Die Gefahr ist also, dass hier diese sinnvolle Trennung nicht beibehalten wird.
  • Interfaces werden möglicherweise unbedienbar, da sie neue Elemente enthalten, die die User nicht erwarten, oder Bedienelemente nicht wie erwartet funktionieren (z.B. kein Submit-Button, Back-Button funktioniert nicht). Mittlerweile haben sich bestimmte Abläufe und Quasi-Standards bei der Bedienung von Web-Seiten durchgesetzt. Formulare werden über den Submit-Button abgeschickt, Navigationen befinden sich innerhalb bestimmter Bereiche der Web-Seite, u.ä. Wer heute etwas über einen Online-Shop bestellt wird feststellen, dass die meisten Shops relativ ähnlich aufgebaut und deshalb einfach zu benutzen sind. Wenn jetzt bestimmte Elemente, z.B. Formulare, nicht mehr so wie gewohnt funktionieren, kann das mehr zur Verwirrung beitragen, als das es den User/innen nutzt.
  • Seiten, die mittels JavaScript/AJAX verändert worden sind, können nicht einfach ausgedruckt werden, da der Browser derzeit die Seite so ausdruckt, wie sie ursprünglich vom Server geladen worden ist.
  • AJAX-Anwendungen unterliegen den Beschränkungen des zustandlosen HTTP-Protokolls. Eine dauerhafte Verbindung zum Server ist nicht möglich, d.h. der AJAX-Client sich nicht beim Server registrieren um von ihm über bestimmte Ereignisse informiert zu werden, auf die der AJAX-Client dann reagieren kann. Stattdessen muss er regelmäßig Anfragen an den Server schicken, um zu klären, ob ein neues Ereignis eingetreten ist. Das kann den Vorteil von AJAX, die Serverlast zu verringern, in das Gegenteil umkehren.
  • DHTML / AJAX ist nicht vereinbar mit Barrierefreiheit. Seiten, die barrierefrei sein sollen, müssen immer auch ohne Javascript bedienbar sein.
  • Der sozusagen hinter dem Rücken der User/innen durchgeführte Datenaustausch kann zu Verunsicherungen führen, da die User/innen nicht mehr die Kontrolle über ihre Daten haben (insbesondere bei Formularen, wo die Eingaben normalerweise erst nach Betätigen des 'Submit'-Buttons gesendet werden).
  • Nach wie vor sind zahlreiche Methoden und Verhaltensweisen in unterschiedlichen Browsern verschieden oder auch gar nicht implementiert. Bestimmte Methoden funktionieren nicht oder zumindest nicht wie erwartet. Das bedeutet, dass umfangreiche Tests in verschiedenen Browsern nötig sind. Nicht selten nimmt der Aufwand dafür, bestimmte Verhaltensweisen, die nicht oder fehlerhaft im Browser implementiert sind, mittels Javascript nachzubilden, einen wesentlichen Teil des Gesamtaufwands bei der Programmierung ein.
  • Die Interaktion zwischen Desktop-Anwendungen und Web-Anwendungen ist kaum möglich, da der direkte Zugriff auf die Zwischenablage fehlt. Der fehlende Zugriff auf die Zwischenablage, aus Sicherheitsgründen unabdingbar, stellt eine Grenze für Web-Applikationen dar ebenso wie die Tatsache, dass mittels Javascript keine Grafiken manipuliert oder erstellt werden können. Auch das Zeichnen von Elementen der Bedienoberfläche ist nicht möglich. Die Kontrolle über die Bedienoberfläche behält letztlich der Browser, dessen Verhaltensweisen über vorgegebene Methoden und Eventhandler beeinflußt werden kann. An die Möglichkeiten normaler Programmiersprachen reicht Javascript bei weitem nicht heran.
          


Copyright und weitere Infos u.a. bei   www.get-the-code.de

www.juelweb.de