Ajax, das Zauberwort
Mittlerweile halten immer mehr Ajax-Anwendungen Einzug in das tägliche Surfen und manchmal bemerkt man erst auf den zweiten Blick, dass das Surfen gerade einen Tick einfacher war. Wenn man z.B. nach dem Ausfüllen eines Textfeldes auf den Senden-Button gedrückt hat und das eben Getippte sofort auf der Seite lesbar ist, ohne dass sich die Webseite neu geladen hätte. Das ist ein Beispiel für Ajax. Wunderbar zu fühlen in den Webapplikationen Flickr, Basecamp oder Backpackit.
Das Wort Ajax wurde erst zu Beginn des Jahres erfunden und was dahinter steckt, wurde in Ajax: A New Approach to Web Applications auf AdaptivePath beschrieben. Ajax ist Asynchrones JavaScript und XML. Ajax ist also keine neue Technologie sondern eher das perfekte Zusammenspiel von Javascript, CSS und XHTML mit einem Server durch XMLHttpRequest. Verkürzt wird die Warte- bzw. Ladezeit für den Besucher.
Ein sehr schön anschauliches Beispiel ist der XMLHttpRequest Business Card Creator von Thomas Baekdal. Bei Eingabe einer ungültigen E-Mail-Adresse wird der Benutzer sofort auf den Fehler hingewiesen. Ganz ohne Absenden und Laden.
Lesenswert zum Thema sind z.B.:
- wikipedia: Ajax
- Ajax, Ajax Everywhere
- Ajax From a Different Point of View
- Ajax, promise or hype?
- Ajax Mistakes
- Ajax aus Sicht des Designers
- Designing for the subtlety of Ajax
- AJAX breathes new life into Web apps
- Update Ajaxian Blog. Weblog zu Ajax
- Update eHub sammelt Applikationen, Artikel, Ressourcen zum Thema Web 2.0.
- Update Ajax: die nächste Generation der Web-Anwendungen. “Zwei Helden” von Stefan Mintert.
- Update AJAX – Asynchronous Javascript and XML. Vortrag von Hendrik Sgries (Deutsch).
Wie es bei allen neuen Ansätzen so ist, verbreitet auch Ajax sich rasend schnell und nicht immer zum Guten. Während der beschriebene Ansatz, die Bedienung von Webapplikationen eindeutig erleichtern und ihre Zugänglichkeit deutlich erhöhen kann, gibt es auch fragwürdige Einsatzgebiete. Die Homepage von Profiblogger Kottke wartet im oberen Bereich mit einem Ajax-Pulldown Menü auf, das den Besucher schnell auf den ausgewählten Bereich der Website weiterleitet. Beim Test und aus alter Gewohnheit heraus, habe ich die Navigation über den Zurück-Button sehr vermisst. Jason Kottke gibt im Artikel Ajax and weblogs Auskunft über die Hintergründe und listet auch die verbundenen Probleme. Die Site dux2005 zeigt, wie man es nicht machen sollte: Die gesamte Navigation vollzieht sich ohne Permalinks, die Site wird benutzerunfreundlich.
Weitere Beispiele für den sinnvollen Einsatz von Ajax:
- The Yellow Fade Technique wie auf Basecamp verwendet.
- Upload progress – demo
- An object-oriented Javascript library
- colr.org liefert z.B. Farbpaletten von Fotos.
- GTD TiddlyWiki
- Magnetic AJAX Poetry Kühlschrankpoesie mit Ajax.
- Dynamic Tasklist Macro
- del.icio.us direc.tor
- Update Writeboard. Online Dokumente entwerfen und gemeinsam bearbeiten.
- Update Remember The Milk. Getting-Things-Done-Applikation mit Kalendern, Terminen und Remindern.
- Update Animated anchor links with unobtrusive javascript. Sehr gefällige Methode, von einem Anker zum anderen zu springen.
- Update Tiny Tiny RSS. Online RSS-Reader.
- Update Kiko Online Kalender mit elegantem Interface.
- Update Writely. Online Schreibprogramm, das es verschiedenen Autoren erlaubt, zusammen an einem Dokument zu arbeiten.
- Update Periodic Table of the Elements. Das Periodensystem mit Ajax.
Werbeunterbrechung
Kommentare und Feedback (32)
Folgende Seiten verweisen auf diesen Beitrag
Werbung
Vorheriger Artikel: Öffne diese Seite in Safari / Firefox, nächster Artikel: Browsershots
21.05.2005, 01:08
cool, danke für den interessanten hinweis, obwohl ich die benutzer(un)freundlichkeit bei dux2005 nicht ganz nachvollziehen kann, da man ja sehr schön an den navi-highlights sieht, wo man ist? kennst du mein derzeitiges lieblinks-development http://www.snook.ca/archives/000365.html ..? see also: http://www.snook.ca/archives/cat_accessibility_and_usability.html der mann hat echt ein händchen und ausserdem ein gutes herz, denn er lädt ausdrücklich ein, nach herzenslust zu verwenden, was man bei ihm entdeckt.
21.05.2005, 07:39
@zuperfly: oha. da fragst du mich was — die atelierausstattung ist nicht von mir (werd ich morgen mal meine kollegin fragen..).
21.05.2005, 08:06
Hallo Anne, vielen Dank für die Links. Ich kannte die Site nur “oberflächlich”.
Die Navigation von dux2005 sieht gut aus, aber versuche mal, eine Seite als Bookmark abzuspeichern. In der Adresszeile des Browsers tut sich nichts. Das meinte ich mit benutzerundfreundlich.
21.05.2005, 11:31
@anne: Was sind das denn für feine Schreibtische, die man auf deiner Seite im Bilderalbum 2005 sehen kann? Wo gibts die denn zu kaufen?
21.05.2005, 11:55
Hallo Manuela,
Problem mit JavaScript/DHTML ist auch weiterhin, dass eine Seite etwa gar nicht mehr funktioniert wie bei dux2005.org bei ausgeschalteten JavaScript, wobei man das noch leicht vermeiden kann oder schlimmer, dass sie gerade bei eingeschalteten JavaScript nicht mehr funktioniert.
Auf kottke.org lässt sich z.B. mit Opera 7.54 u2/Linux nicht die Anzeige ändern. Denkbar wäre es jetzt, dass eine Alternative ohne JavaScript funktioniert, bei eingeschalteten JavaScript die Seite dann aber nicht mehr oder nur noch eingeschränkt zu benutzen ist.
tschuess
[|8:)22.05.2005, 02:40
@anne: Das wäre nett. Ich schau dann morgen hier nochmal rein.
22.05.2005, 09:24
@zuperfly: spät aber doch — also es sind tischplatten von ikea, aber egon-eiermann-gestelle, die eine mal bei ebay günstig zu bekommen waren (einfach mal egon eiermann googeln..). ich kenn diese tisch eauch von einem kollegen, der hat die in noch grosszügigerer tiefe, was ich hier etwas vermisse..
27.05.2005, 11:17
@anne: Vielen Dank. Aber ich habe inzwischen ebenfalls bei IKEA und mich für die weissen Galant-Tische mit höhenverstellbaren Beinen entschieden. Salü!
24.06.2005, 09:40
(Manual Trackback)
…Im Zusammenspiel mit XML und XMLHttpRequest bieten große Sites wie zB Flickr ganz neue Anwendungen an, die die Benutzung Ihrer Sites wirklich komfortabler machen.
Manuela Hoffmann hat eine sehr schöne Einführung mit diversen weiterführenden Links geschrieben und jetzt habe ich gerade bei Einfach für alle einen sehr ausführlichen Artikel zum Thema ein externer Link Barrierefreies Javascript gefunden….
09.10.2005, 05:26
Eine ganz tolle Seite als Beispiel ist die personalisierte Startseite von MSN. Zwar noch im Beta-Stadium, aber es wird schon deutlich, was für Möglichkeiten AJAX bieten kann.
Allerdings sollte immer bedacht werden, dass AJAX auf normalen Web-Seiten nur eingesetzt werden sollte, um zusätzliche Fuktionalitäten zu bieten. AJAX ist meiner Meinung nach eher für Web-Applikationen geeignet, wo JavaScript/ActiveX vorausgesetzt und neue oder geänderte Web-Elemente (z.B. kein Submit-Button) eingesetzt werden können.
P.S. Habe gerade einen Vortrag über AJAX gehalten. Wen es interessiert: AJAX-Vortrag
09.10.2005, 05:31
Kleiner Fehler, jetzt sind die Links verloren gegangen:
MSN: http://www.start.com/myw3b/
Vortrag: http://www.get-the-code.de/code/javascript/ajax/
13.10.2005, 02:34
@Hendrik: Vielen Dank für den Link zum Vortrag. Habe ihn in den Artikel aufgenommen.
13.10.2005, 11:33
Hallo, eine tolle Liste… aber :)
Dieser animierte Anchorgeschichte hat m.E. nichts mit AJAX zu tun. Immerhin wird hier nichts asynchron nachgeladen. Das ist plain-javascript.
Gruß, semplorr
24.10.2005, 01:44
Hier noch ein nettes deutsches Beispiel für AJAX: Valoony , ein Produktkonfigurator mittels AJAX
04.01.2006, 12:42
Es gibt eine dt. AJAX community unter http://www.ajax-community.de
04.01.2006, 12:48
Aus meiner Sicht ist das SAJAX Framework für PHP zur Zeit das beste, wenn es um AJAX Programmierung geht.
19.01.2006, 05:47
Ajax scheint ja der Trend überhaupt zu werden… Mir macht aber immer noch das Problem zu schaffen, das viele User auch JavaScript dekativiert haben!
Es wird wohl Zeit, sich trotzdem auch damit zu beschäftigen!
Danke für die Zusammenstellung der Links.
09.02.2006, 02:27
Nachdem alle bisher so zitierten AJAX-Anwendungen wohl eher noch Spielkram sind, hier mal was handfestes aus dem richtigen Leben:
Unter http://www.ol-commerce.de/olcommerceshop/ajax/index.php ist die erste Test-Version eines vollständig AJAX-basierten Shop-Systems (PHP basierend) online.
olCommerce ist ein Ableger von xtCommerce 2, was wiederum ein Ableger von osCommerce ist.
AJAX-fähig ist olCommerce überhaupt nur deshalb, weil es (im Gegensatz zu osCommerce, das den HTML-Code “on-the-fly” überall im Programm generiert und per PHP-“echo” ausgibt) die Rendering-Engine “Smarty” verwendet, so dass man an zentraler Stellen weiss, für welche Bildschirmbereiche welcher HTML-Code bestimmt ist, und ihn dann entsprechend an die lokale AJAX-Anwendung übergeben kann, die diesen HTML-Code dann an die richtigen Stellen im DOM der Seite schreibt. Eine unabdingbare Voraussetzung für die Verwendung von AJAX. (“osCommerce” zu AJAX-ifizieren wäre m.E. ein unmögliches Unterfangen!)
Im Prinzip braucht für AJAX der funktionelle Ablauf von olCommerce nicht geändert zu werden, da man ja erst dann eingreifen muss, wenn die fertigen HTML-Daten vorliegen. Allerdings bietet es sich natürlich mit AJAX an, nur noch diese Teile wirklich neu zu erstellen, die auch benötigt werden. Beim konventionellen Verfahern muss man halt immer alle (27) möglichen änderbaren Bereiche neu berechnen, da diese zur Erstellung der kompletten Seite benötigt werden, auch wenn sich von der Sache her nur einer(!) dieser Bereiche wirklich geändert hat (z.B. bei der Ablage eines Artikels in den Warenkorb ändert sich nur der Warenkorb). Deshalb haben wir auch in den funktionellen Ablauf von olCommerce eingegriffen, um die zu übertragenden Daten anwendungsorientiert zu minimieren (was erfreulicherweise in nur einer olCommerce-Routine möglich war). Neben dem unschlagbaren Gewinn an Ergonomie wird man damit auch eine Menge an PHP- und Datenbankbefehlen sparen.
Allerdings muss man schon erhebliche Eingriffe in olCommerce vornehmen, da die AJAX-ifizierung einige notwendige Voraussetzungen hat.
z.B. müssen alle Formulare jetzt ein “onsubmit“event bekommen (warum siehe weiter unten), für die Validierung benötigen die meisten Felder “onchange” bzw. “onblur”-Events”, und alle Links müssen so modifiziert werden, dass der AJAX-Mechanismus überhaupt greifen kann (Links werden in eine Javascript-Funktion gewrapped, die den AJAX-Verkehr abwickelt), u.v.m..
Glücklicherweise betrifft das meist zentrale Routinen (“meist” nur deshalb, weil in “Open Source” Systemen mit vielen Vätern und Müttern halt die Disziplin nicht immer gegeben ist, diese zentralen Routinen auch zu verwenden. So musste man olCommerce erst mal standardisieren, damit überall diese zentralen notwendigen Routinen verwendet werden).
=====================
Getestet ist das Ganze mit IE 6, FireFox 1.5 und Netscape 8.1
Es gibt sicher noch ein paar Dinge, die noch nicht richtig funktionieren, aber ich denke, das Ganze ist schon recht stabil und man kann sich doch schon einen sehr guten Eindruck von den Möglichkeiten des von olc/AJAX machen.
Die Navigation funktioniert so weit, der Einkauf auch, ebenso auch die Browser-Historie (ein besonderes Problem mit AJAX, da der ganze Verkehr mit dem Server am Browser vorbeiläuft!).
Besonders bemerkenswert ist, dass bei allen Funktionen der Bildschirm nicht mehr gelöscht wird, sondern stabil bleibt. Das Internet-Anwendungs-typische Gezappel und Geruckel am Bildschirm beim Aufruf neuer Funktion gehört damit der Vergangenheit an.
Die Realtime-Validierung ist soweit auch fertig.
Es können validiert werden:
Vorname/Geschlecht (Von “Aafke (weiblich)” bis “Zümrüt (weiblich)”)
Für D-A-CH:
PLZ (mit automatischem setzen von Stadt (und Bundesland für D), wenn die PLZ gefunden wurde)
BLZ (mit automatischem setzen der Bank, wenn die BLZ gefunden wurde)
Für D:
Prüfen der Kontonummer auf Gültigkeit anhand des Prüfziffernverfahrens der jeweiligen Bank.
Für alle Online-Validierungen gilt:
Werden für die eingegebenen Werte mehrere Einträge gefunden (man kann auch Teile eines Begriffs eingeben), wird unter dem betreffenden Feld eine Auswahlbox mit den gefundenen Alternativen angezeigt, aus denen dann die richtige gewählt werden kann. (Im Regelbetrieb wird man das tunlichst vermeiden, aber derzeit kann man sich alle 46.431 Vornamen, 19.241 BLZ und 26.564 PLZ auf diese Art zur Auswahl anbieten lassen. (Da hat der Browser doch ein paar Sekunden zu tun, um diese Auswahlboxen in die Seite einzubauen.) Im Regelbetrieb wird für die Eingabe eine Mindestanzahl einzugebender Zeichen vorgeschrieben, um die Auswahlmöglichkeiten zu reduzieren.)
Fehler und Hinweise werden nun über die gewohnte WINDOWS-Messagebox (“alert” in Javascript) mitgeteilt.
Als kleine Spielerei (um die Möglichkeiten des Verfahrens zu testen) ist es auch vorgesehen, dass bei der Änderung des Landes in der Kundendatenmaske die Bundesländer des jeweiligen Landes im “Bundesland“-Feld erscheinen, bzw. das ganze Bundesland-Feld entfernt wird, wenn es keine Bundesländer gibt.
Validiert wird auch die “Schnellkauf”-Funktion, wo entweder ein Fehler angezeigt wird (“Artikel-Nr. falsch”, “Produkt ausverkauft” u.ä.), oder der Warenkorb aktualisiert wird.
Alles also so, wie man es von lokalen Anwendungen üblicherweise gewohnt ist
==========================
Implementiert ist auch etwas, was ich “sticky cart“ getauft habe, also ein Warenkorb, der beim Scrollen auf einer Kategorie-Produkt-Seite am rechten Rand “angeklebt” (deshalb “sticky”) und sichtbar bleibt, so dass man bei weiterem Einkauf auch beim scrollen gleich den aktuellen Stand sieht. (Mich jedenfalls hat das immer gestört, dass ich beim Einkauf nie den Warenkorb sehen konnte, wenn dieser aus dem Bildfeld gescrolled war. Mit AJAX kann man, als Nebeneffekt, diesen jetzt sehr schön immer sichtbar und aktuell halten.)
==========================
So schön AJAX auch ist, es schafft doch eine ganze Reihe von Problemen, die man anwendungsorientiert lösen muss.
Die wichtigsten sind:
1. Der Browser leistet keine gewohnten Dienste mehr
Das AJAX-Programm muss z.B. selbst für die richtige Aufbereitung von Sonderzeichen sorgen.
2. Der Browser ermittelt keine POSTDaten
Das AJAX-Programm muss beim POST von Formulardaten (“onsubmit”) selbst die richtigen Parameter aus dem Formular ermitteln (ein nicht ganz triviales Problem).
Der ganze mittlerweile in olCommerce vorhandene Komfort hat natürlich auch seinen Preis:
das olc/AJAX-Javascript das den ganzen AJAX-Verkehr, den lokalen Teil der Validierung, den “sticky-cart” und die “Browsing-Historie” abwickelt, hat mittlerweile 2.500(!) Zeilen (der Lesbarkeit wegen allerdings großzügig formatierten) Code. Das ist aber nicht weiter tragisch, da der ja nur einmal beim Start der Anwendung geladen wird, und bei den einzelnen Programmschritten jeweils immer nur kleine Teile daraus benötigt werden.
25.03.2006, 19:04
Alter Wein aus neuen Schläuchen. Aber gut ist schon, dass endlich mal mehr Wert auf Useability gelegt wird.
17.04.2006, 05:27
Leute, schaut euch einige der Beispiel mal in Opera 8 an (der AJAX unterstützt). Bevor man solche techniken einsetzt (wie ich das erfolgreich tue), sollte man auch Nischenbrowser nicht auslassen.
Andi
akidee.de
19.04.2006, 17:35
Das sollte man ohnehin immer tun….
06.05.2006, 16:00
Ich habe Javascript immer aus… – Shops, die mit JS arbeiten, besuche ich nicht.
30.05.2006, 13:40
Ein kreatives neues Spiel, das auf Ajax, Php und MySql basiert. Vielleicht wollt Ihr es mal ausprobieren:
http://www.BunteSuppe.de
Das Internet Mosaik besteht aus 1.000 bunten Mosaiksteinchen, die von allen Spielern gemeinsam verwendet werden, um einzigartige Kunstwerke zu erschaffen. Wenn jemand ein Steinchen bewegt, dann können die anderen Spieler diese Bewegungen sofort in Echtzeit auf ihren Bildschirmen sehen!
Besucher können Snapshots von ihren Kunstwerken machen und diese in der Gallery ausstellen und von anderen Besuchern bewerten lassen. Zusätzliche Features sind individuell gestaltbare Mosaik Rooms, ein Developer Blog und ein Support Forum.
In unserem Developer Blog verraten wir, wie wir das gemacht haben und alle unseren Ajax, Php, Mysql und JavaScript Tipps, Tricks und Techniken!
12.07.2006, 22:28
Interessantes Tool, die bunte Suppe – so leider noch nie gesehen, aber ich hab immer auf etwas gewartet, wo mehrere User wirklich gleichzeitig an etwas “arbeiten” koennen – so wie das ausseiht, wird das ja was :-)
31.08.2006, 23:41
AJAX ist die Zukunft…
14.09.2006, 13:28
Hallo,
hier noch ein schönes Beispiel zu einem ajaxbasierten Warenkorb und einer Suche mit ajaxbasiertem Autofullfillment
p1e !
11.04.2007, 00:23
Guter Beitrag und Danke für die diversen weiterführenden Links. AJAX-Community Forum ist sehr große Hilfe.
01.04.2008, 18:14
Hab gar ncht gewusst wie zahlreich AJAX Einsatz findet. Sehr intressant zu sehen wie schnell die Ausbreitung voranschreitet
06.03.2009, 09:52
СВÐ?РКÐ? ОПТИЧЕСКОГО ВОЛОКÐ?Ð?
КомпаниÑ? окажет уÑ?луги по монтажу и Ñ?варке ВОЛС.
Мы быÑ?тро и оперативно решим вашу проблему.
КачеÑ?тво и оперативноÑ?ть выполнениÑ? работ доÑ?тигаетÑ?Ñ? нами при помощи квалифицированных Ñ?пециалиÑ?тов в облаÑ?ти монтажа волоконно-оптичеÑ?ких Ñ?оединительных изделий.
Работы проводÑ?Ñ‚Ñ?Ñ? Ñ? иÑ?пользованием автоматичеÑ?ких Ñ?варочных аппаратов Fujikura s50 и Fujikura s60, которые Ñ?влÑ?ÑŽÑ‚Ñ?Ñ? флагманами ведущей мировой компании.
При необходимоÑ?ти мы можем дополнительно провеÑ?ти замеры параметров волоконно-оптичеÑ?кой линии при помощи рефлектометров Yokogawa AQ7261 и FOD 7003, что даÑ?Ñ‚ вам дополнительное подтверждение качеÑ?тва проделанных работ.
ПОДКЛЮЧЕÐ?ИЕ ЦИФРОВОГО СПУТÐ?ИКОГО ТЕЛЕВИДЕÐ?ИЯ.
КомпаниÑ? окажет уÑ?луги по подключению цифрового Ñ?путникового телевидениÑ?.
Ð?а Ñ?егоднÑ?шний день при помощи уÑ?тановленных нами антен вы Ñ?можете Ñ?мотреть 34 телевизионных канала, из которых 20 Ñ?влÑ?ÑŽÑ‚Ñ?Ñ? беÑ?платными.
СтоимоÑ?ть комплекта подключениÑ? (реÑ?ивер, конвертор, антенна , карта “Старт”) – 8500 руб.
Ð?бонентÑ?каÑ? плата:
0 руб./год. – Инфоканал, Первый, РоÑ?Ñ?иÑ?, Ð?ТВ, Культура, ТÐ?Т, Спорт, ВеÑ?ти, Петербург, РЕÐ? ТВ, Бибигон, CTC, Союз
400 руб./год. – Кинопоказ, Дом Кино, Много ТВ, КомедиÑ? ТВ, ИндиÑ?
400 руб./год. – Teen TV, ВеÑ?елое ТВ, ТелепутешеÑ?твиÑ?, Зоо ТВ, Ð?вто+, 365 дней ТВ, Боец
500 руб./год. – Ð?очной клуб, РуÑ?Ñ?каÑ? ночь
600 руб./год. – Teen TV, ВеÑ?елое ТВ, ТелепутешеÑ?твиÑ?, Зоо ТВ, Ð?вто+, 365 дней ТВ, Боец, Кинопоказ, Дом Кино, Много ТВ, КомедиÑ? ТВ, ИндиÑ?
0 руб./год. – Мать и дитÑ?, ТеленÑ?нÑ?, ДТВ, ТВ Центр, Муз ТВ, Домашний, ТонуÑ? ТВ (БонуÑ? при уÑ?ловии подключениÑ? платных каналов).
КонтактнаÑ? информациÑ?:
почтовый Ñ?щик – .
ICQ – 426245530
25.05.2009, 16:20
Àëüòåðíàòèâà íàçèäàíèé ÷åëîâåêà â ìå÷òàõ Íèöøå http://www.nicshehuman.ru/.
Íèöøå îãëàøàë äóøåâíûå ñîìíåíèÿ, èìåííî ïîýòîìó åãî ïðèçíàâàëè è ïðîêëèíàëè îäíîâðåìåííî.
06.06.2009, 07:25
<a > alameda county public records </a>
<a > calories in ceasar dressing </a>
<a > virtual pet sites </a>
<a > staph infections and pictures mrsa </a>
<a > wizard of oz hung midget </a>
<a > how to find a private phone number </a>
<a > average monthly temperatures </a>
<a > volusia county public records </a>
<a > omega y su mambo violento </a>
<a > search for name using phone number </a>
19.06.2009, 15:20
I totally agree with you