5.04.2007 AJAX-Lösungen 2007

Wie bereits erwähnt befindet sich das neue Sitewards-Framework für Webseiten gerade in der Entwicklung. Natürlich kommt kein aktuelles Framework ohne AJAX-Komponente aus. Nach kurzer Diskussion in der Runde, ob dies wirklich so ist (oder sein sollte), stimmten wir für den Einsatz von AJAX — insbesondere im Hinblick auf zukünftige Webapplikationen.

Bisher wurde bei Sitewards als AJAX-Komponente XAJAX (siehe unten) verwendet. Es handelte sich dabei um eine Version von 2005, welche über die Zeit angepasst und erweitert wurde. Inzwischen jedoch sind nicht nur neue Versionen von XAJAX erhältlich, vielmehr hat sich bei AJAX-Komponenten und -Frameworks allgemein sehr viel getan. Auf der Suche nach einem aktuellen Überblick und Vergleich einiger AJAX-Pakete wurden wir jedoch enttäuscht: es gibt keinen. Natürlich gibts es Listen und einzelne Tutorials, doch damit hat es sich schon fast. Also blieb uns nichts anderes übrig, als einige AJAX-Lösungen selbst genauer unter die Lupe zu nehmen.

Hier nun eine Übersicht über einige aktuell erhältliche AJAX-Lösungen. Die Zitate zu Beginn sind jeweils von der Webseite des oder der Entwickler. Die Einträge sind sortiert nach Grad der Komplexität und Leistungsfähigkeit des Pakets.

SAJAX
“SAJAX is an open source tool to make programming websites using the AJAX framework — also known as XMLHTTPRequest or remote scripting — as easy as possible. SAJAX makes it easy to call PHP, Perl or Python functions from your webpages via JavaScript without performing a browser refresh. The toolkit does 99% of the work for you so you have no excuse to not use it.”

SAJAX ist wohl der Klassiker unter den AJAX-Frameworks. Es bietet eine sehr einfache Möglichkeit AJAX in seine Projekte zu integrieren. Komponenten für die üblichen Websprachen wie PHP, Ruby, Perl und Python liegen bereits bei. Diese Komponente erzeugt den nötigen Javascript-Code, der auf den Webseiten jeweils von SAJAX eingefügt wird.

Mehr macht SAJAX nicht, aber das ist genau die Absicht. So einfach wie möglich wird AJAX dem Entwickler zur Verfügung gestellt. Javascript wird so weit wie möglich “versteckt”, so dass man in seiner gewohnten Sprachumgebung bleiben kann.

Extra zu erwähnen wäre, dass SAJAX einen (kostenpflichtigen) “Profi-Support” anbietet. Über dessen Qualität können wir allerdings keine Aussagen machen. Ebenfalls erwähnenswert ist, dass die letzte Version (0.12) von SAJAX schon vor einer ganzen Weile erschienen ist.

XAJAX
“xajax is an open source PHP class library that allows you to easily create powerful, web-based, Ajax applications using HTML, CSS, JavaScript, and PHP. Applications developed with xajax can asynchronously call server-side PHP functions and update content without reloading the page.”

Im Grunde ist XAJAX ähnlich wie SAJAX: es bietet einen einfachen Einstieg in AJAX, ohne sich viel Gedanken um Javascript machen zu müssen. Hier endet die Gemeinsamkeit aber schon. XAJAX ist eine PHP-Klasse; weitere Sprachen werden nicht unterstützt. Im Gegensatz zu SAJAX sind jedoch Callbacks von Funktionen überflüssig — die XML-Daten und -Events werden direkt von dem XAJAX-generierten Code verwaltet. Darüber hinaus hat XAJAX einige Features, die in SAJAX nicht vorliegen — beispielsweise per DOM durch das Dataset zu navigieren.

Prototype
“Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest AJAX library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.”

Auf Prototype basieren eine ganze Reihe von AJAX-Frameworks. Es ist sozusagen ein Grundlagen-Framework, mit dem man die üblichen Aufgaben des Javascript-Alltags brav und weitgehend objektorientiert erledigen kann.

Darauf aufbauend kann man nun so ziemlich alles nach Herzenslust umsetzen — vorausgesetzt man scheut den Aufwand nicht, alles von Hand zu erledigen — und bitte in Javascript. Problematisch ist, dass es keine Dokumentation von dem ursprünglichen Entwickler gibt, sondern nur von Dritten.

Rico
“Rico provides a very simple interface for registering AJAX request handlers as well as HTML elements or JavaScript objects as AJAX response objects. Multiple elements and/or objects may be updated as the result of one AJAX request.”

Rico ist eines der Frameworks, die auf Prototype basieren. Der Schwerpunkt von Rico liegt auf der einfachen Benutzung einiger weniger Elemente. Es hat ein paar schöne Features im Bereich Drag & Drop und unterstützt grafische Goodies wie Positionierung, Animationen, Fades und Farbwechsel.

Rico stellt sogenannte “Live Grids” zur Verfügung. Diese kann man sich als Auszüge des Datasets vorstellen, im Endeffekt also Paginierung. Dies findet auf der Clientseite statt, also muss der Server nicht entscheiden wie er diese vornimmt, sondern der Client fordert die Daten jeweils an.

Jedoch ist dies die einzige Funktion, die Rico für Datasets bereit stellt. Komplexere Funktionen wie Sortierung, Filter etc. müssen also selbst eingebaut und nach wie vor vom Server übernommen werden.

Spry
“The Spry framework for AJAX is a JavaScript library for web designers that provides functionality that allows designers to build pages that provide a richer experience for their users. It is designed to bring AJAX to the web design community who can benefit from AJAX, but are not well served by other frameworks.”

Spry ist ein Framework von Adobe. Es basiert vollständig auf JavaScript; Es gibt also keine PHP-Komponente, die Code generiert. Die Einbindung ist jedoch sehr leicht: einfach als Quelle für ein Datenset auf ein .php verweisen, welches die XML-Daten ausgibt, fertig. Alles weitere passiert auf der Client-Seite und genau hier passiert einiges spannendes.

Spry ist sehr mächtig was den Umgang mit Daten angeht (sortieren, filtern, Paginierung, ..). Die Daten werden einmal an den Client gesendet und anschließend dort (ohne dass diese erneut vom Server geholt werden müssen) entsprechend bearbeitet. Darüber hinaus bringt auch Spry einige grafische Goodies mit.

Zur Zeit ist Spry als Version 1.4 verfügbar. Adobe bezeichnet Spry 1.4 als “Preview” und “Prerelease”. So erschien Mitte März einige Erweiterungen des Frameworks auf Version 1.5 (mit Beispielsweise JSON-Unterstützung und geschachtelten Datasets), die aber nur als einzelne Dateien verfügbar sind und anscheinend noch mehr “Prerelease” sind - quasi eine Alpha der Beta. Funktionieren tun sie allerdings.

Noch erwähnen möchten wir Pajaj, ein simples auf JSON basiertes Framework, und SimpleJax, eine enorm kleine und reduzierte AJAX-Komponente. Beide fielen positiv bei unseren Recherchen auf.

Fazit: Zu Beginn unserer Recherchen waren wir uns noch nicht einig, ob wir eine einfache AJAX-Lösung nehmen und uns benötigte Anforderungen selbst hinzubauen, wie bisher mit XAJAX gehandhabt. Spry hat uns als Allround-Paket jedoch so überzeugt, dass wir es in Zukunft als AJAX-Komponente in unserem Framework verwenden werden. Insbesondere die Integration in die neue Version des Adobe Dreamweaver ist für unsere Designer ein großes Plus. Dazu kommt, dass die neue Template Engine des Sitewards-Frameworks bereits auf Dreamweaver-Templates basiert. Ihren Zweck erfüllen jedoch alle vorgestellten AJAX-Frameworks. Es scheint, als wäre die Technologie inzwischen doch so weit bekannt und getestet, dass ausgereifte und vor allem schlüsselfertige Frameworks für Einsteiger bereit stehen — bis hin zu komplexeren Paketen, die bereits viele nützliche Funktionalitäten mitbringen.

2 Kommentare zu “AJAX-Lösungen 2007”


  1. 1 Fabian Sempf Sitewardslandianer 5. Apr 2007 um 22:45

    Und es geht noch eine Nummer höher!

    Die vorgestellten Frameworks sind vor allem auf die Client-/Serverkommunikation ausgerichtet. Aber auch grafische Spielereien, die dem Benutzer das Leben leichter machen sind ein wichtiger Bestandteil von AJAX-Frameworks. In diesem Zusammenhang würde ich gerne noch ext (http://www.extjs.com) hinzufügen, mit dem sich sehr einfach desktop-ähnliche Oberflächen erstellen lassen. Wen’s interessiert, der kann mal mit den Demos auf http://www.extjs.com/deploy/ext/docs/index.html spielen. Besonders die Demo „Paging and Remote Datasets“ ist sehr interessant.

  1. 1 Sichere AJAX-Anwendungen :: Sitewardslandia Pingback am 5. Apr 2007 um 18:15

Kommentar schreiben