Obwohl das "Web 2.0" in erster Linie ein soziokulturelles Phänomen sein dürfte, hat es doch eine wichtige neue Trägertechnologie mit sich gebracht: Ajax. Ajax ist ein Akronym für „Asynchronous JavaScript and XML“. Das Wort „asynchron“ deutet an, um was es geht: Webseiten soll es damit möglich werden, auch nach dem Abruf und damit während der Anzeige im Browser noch Daten mit dem Server auszutauschen, so dass sich die Web-Anwendung dem „Look and Feel“ einer Desktop-Anwendung annähern.
Die vorliegende Arbeit behandelt zunächst die Ajax zugrunde liegenden Techniken und erklärt die Funktionsweise. Im ausführlichen praxisorientierten Teil wird gezeigt, wie in eine bestehende Web-Datenbank-Anwendung nachträglich Ajax-Elemente eingefügt werden können, um eine höhere Benutzerfreundlichkeit zu erzielen. Dabei findet das relativ unbekannte, sich jedoch an existierenden Standards orientierende Framework "Taconite" Verwendung. Schließlich werden die aufgetretenen Probleme reflektiert, insbesondere beziehen diese sich auf unterschiedliche Verhaltensweise von Browsern und Zeichensatzprobleme.
Der Einsatz von Ajax kann die Usability einer Web-Anwendung maßgeblich steigern. Es muss jedoch bedacht werden, dass bei öffentlich zugänglichen Anwendungen auch herkömmliche Zugriffsmöglichkeiten bestehen müssen, da nicht alle User einer solchen Software über einen hinreichend aktuellen Browser mit JavaScript verfügen und da die Barrierefreiheit durch Ajax möglicherweise eingeschränkt wird.
Inhaltsverzeichnis
1 Einleitung
2 Theoretische Grundlagen
2.1 Normale Funktionsweise des WWW: HTTP-Protokoll
2.2 Vergleich zwischen konventioneller und Ajax-Kommunikation
2.3 XML als universelle Beschreibungssprache
2.4 Das Document Object Model (DOM)
2.5 JavaScript als standardisierte Browser-Skriptsprache
2.6 Das XMLHttpRequest-Objekt in JavaScript und ActiveX
2.7 Zusammenspiel der Komponenten für asynchrone Anwendungen
3 Funktionsweise von Ajax am Beispiel des Frameworks Taconite
3.1 Das Framework Taconite
3.2 XMLHttpRequest-Objekt in verschiedenen Browsern verfügbar ma- chen
3.3 Absenden der Anfrage über das Objekt
3.4 Generieren einer Antwort
3.5 Parsen der Antwort und DOM-Manipulation
4 Anwendung von Ajax in einer Intranet-Anwendung
4.1 Vorstellung der PHP-Anwendung „BScWare“
4.2 Mögliche Einsatzbereiche für Ajax in der Software
4.2.1 Personenliste
4.2.2 Editieren von Personendaten
4.2.3 Termin-Erstellung
4.2.4 Anlegen von Projektteilnahmen
4.2.5 Weitere Einsatzmöglichkeiten
4.3 Implementierung von Ajax in BScWare
4.3.1 Dynamische Zusatzinformationen in der Personenliste . . .
4.3.2 Editieren von Personendaten
4.3.3 Anlegen von Terminen
4.4 Probleme und Reflexion
4.4.1 Programmstruktur und logischer Aufbau
4.4.2 Zeichensatzprobleme
4.4.3 Browser-Inkompatibilitäten
4.4.4 Back-Button und Bookmarks
5 Fazit: Vor- und Nachteile von Ajax
Literatur
Listings
2.1 Einfache HTML-Struktur
3.1 Beispiel für eine von Taconite parse-fähige Antwort
3.2 JavaScript-Funktion createXMLHttpRequest() in Taconite
3.3 JavaScript-Funktion getTransport in Prototype
3.4 Absenden des Requests mit Taconite (gekürzter Quelltext)
3.5 JavaScript-Funktion handleStateChange in Taconite
3.6 JavaScript-Funktion getInsertAfter in Taconite
4.1 Ausschnitt aus dem <head>-Element der Personenliste; JavaScript- Funktion showInfos
4.2 Serverantwort für erweiterte Angaben in der Personenliste
4.3 JavaScript-Funktion blockausklappen
4.4 JavaScript-Funktion editPerson
4.5 Template-File view_person.tpl: Block für Termine
4.6 PHP-Funktion printTermineToTemplate
4.7 Template-File termin.tpl
4.8 PHP-Funktion printAjaxAnswer
4.9 JavaScript-Funktion saveTermin
4.10 Ausgabe der PHP-Funktion saveTermin
4.11 PHP-Funktion chars_encode von Tim Burgan
Abbildungsverzeichnis
2.1 Unterschied zwischen klassischen und mit Ajax erweiterten Web- Applikationen. Quelle: Garrett (2005)
2.2 Darstellung der HTML-Dokumentstruktur aus Listing 2.1 als Baum
4.1 Personenliste in BScWare vor der Ajax-Implementierung (links) und danach (rechts)
4.2 Formular zum Anlegen eines neuen Termins (ohne Ajax): Das For- mular wird als komplette Seite geladen, der Kontext gerät aus dem Blickfeld
4.3 Prinzipieller Ablauf des Editierens von Personendaten
4.4 Prinzipieller Ablauf des Anlegens eines neuen Termins
1 Einleitung
Seit dem Jahr 2005 entstehen im World Wide Web neuartige Angebote, die unter dem Begriff Web 2.0 zusammengefasst werden. Dieser Begriff impliziert, dass zwischen den herkömmlichen Web-Angeboten und den neu entstandenen ein so großer Unterschied besteht, dass es gerechtfertigt ist, von einer neuen Version des World Wide Web zu sprechen.
Wirft man einen Blick auf neue Web-Dienste wie den Bookmark-Dienst Delicious1 oder den Fotokatalog Flickr2, fällt tatsächlich eines auf: Die Bedeutung des Users für diese Angebote ist besonders hoch. Die Benutzer stellen die Inhalte zur Ver- fügung und sie belegen sie mit bestimmten Stichwörtern (Tags), so dass sich die Bookmarks oder Fotos nach diesen Tags sortieren und auswerten lassen. Viele die- ser Dienste stellen eine Programmierschnittstelle (API) auf ihre Datenbasis auch unter dem Begriff „Web Services“ für andere zur Verfügung, so dass beispielsweise jeder mit verhältnismäßig geringem Aufwand den Kartendienst Google Maps3 auf seiner eigenen Webseite integrieren kann.
In erster Linie ist das Web 2.0 also, wie Braun (2006a, S. 152) feststellt, ein soziokulturelles Phänom, hinter dem aber auch eine technische Neuerung steckt, für die sich der Name Ajax durchgesetzt hat4.
Ajax ist ein Akronym für „Asynchronous JavaScript and XML“. Das Wort „asynchron“ deutet an, um was es gehen soll: Webseiten soll es damit möglich werden, auch nach dem Abruf und damit während der Anzeige im Browser noch Daten mit dem Server auszutauschen, auf dass sich die Web-Anwendung dem „Look and Feel“ einer Desktop-Anwendung annähere.
Welche Technologien sich hinter Ajax verbergen und welche Bedeutung sie ha- ben, soll das Kapitel „Theoretische Grundlagen“ behandeln. Grundlage für fast alle Kommunikation im World Wide Web bildet dabei das Hypertext Transfer Protocol (HTTP) - es kommt auch bei Ajax zum Einsatz. Weitere Technologien, die für Ajax verwendet werden, sind das Document Object Model (DOM), die Beschreibungs- sprache XML sowie JavaScript. JavaScript stellt mit dem XMLHttpRequest-Objekt ein Konstrukt bereit, mit dem Serververbindungen hergestellt werden können.
Wie Ajax mit XMLHttpRequest umgesetzt werden kann, zeigt Kapitel 3. Die grund- sätzliche Funktionsweise wird am Beispiel des Frameworks Taconite verdeutlicht, das auch in Kapitel 4 verwendet werden wird.
Kapitel 4 stellt den praxisorientierten Teil dieser Arbeit dar. Eine bestehende Web- Anwendung soll um Ajax-Funktionalität erweitert werden. Dazu wird die Anwen- dung zunächst vorgestellt, bevor einige mögliche Einsatzbereiche genannt wer- den. Für einen Teil dieser Einsatzbereiche wird schließlich in Abschnitt 4.3 die Umsetzung eingehend dokumentiert. Die bei der Implementierung aufgetretenen Probleme sollen in einem gesonderten Teil dargestellt und reflektiert werden.
Im Fazit sollen die gewonnenen Erkenntnisse dahingehend bewertet werden, welche Vor- und Nachteile der Einsatz der neuen Technologie Ajax mit sich bringt. Schließlich soll auch die Frage beantwortet werden, wann Ajax Sinn ergibt - von der Antwort auf diese Frage hängt es ab, wie weit Ajax die Nutzungsmuster des World Wide Web beeinflussen kann.
2 Theoretische Grundlagen
Im folgenden Kapitel sollen zunächst die theoretischen Grundlagen für die Be- nutzung von Ajax erläutert werden. Bevor die Unterschiede zwischen herkömm- lichen Web-Applikationen und solchen, die mit Ajax angereichert wurden, aufge- zeigt werden können, lohnt es sich, das Protokoll „HTTP“ näher anzusehen.
Anschließend wird die Beschreibungssprache XML vorgestellt, die in Ajax zum Datentransfer zwischen Server und Client verwendet werden kann (aber nicht muss). Im Zusammenhang mit XML soll auch das Document Object Model (DOM) vorgestellt werden, da mit dessen Hilfe Manipulationen von XML-Strukturen und -Inhalten möglich sind.
Die Verwendung des DOM geschieht aus einer Programmiersprache heraus, die in aktuellen Browsern implementiert ist: JavaScript. Nach einer kurzen Einführung in diese Skriptsprache wird ein Objekt vorgestellt, das es einem im Browser laufen- den Skript ermöglicht, während der Laufzeit mit dem Server zu kommunizieren. Es handelt sich dabei um das XMLHttpRequest-Objekt.
Schließlich soll es darum gehen, wie all diese Komponenten zusammen das ergeben, was als Kernfunktionalität von Ajax gelten kann: Eine Möglichkeit zum nachträglichen Datenaustausch zwischen Server und Client.
2.1 Normale Funktionsweise des WWW: HTTP-Protokoll
Das Surfen im Internet und die Übertragung von Webseiten vom Server zum Cli- ent verläuft normalerweise synchron. Der Client-Browser schickt eine Anfrage zum Server, dieser beantwortet diese mit dem Senden der angeforderten HTML-Seite bzw. der von einer Skriptsprache auf dem Server erzeugten Ausgabe. Die Interak- tion zwischen Browser und Server findet immer nur genau dann statt, wenn ein expliziter Aufruf dazu vorliegt (außer bei Bildern und anderen in HTML-Seiten eingebetteten Objekten: Diese werden in aller Regel vom Browser automatisch angefordert) und führt dazu, dass eine gesamte neue Datei bzw. Seite geladen wird.
Das beim Internet-Dienst „World Wide Web“ verwendete Netzwerkprotokoll heißt HTTP (Hypertext Transfer Protocol). Es ist im ISO/OSI-Model auf Ebene 7, also in der Anwendungsschicht, anzusiedeln. In der Transportschicht wird normalerwei- se TCP (Transmission Control Protocol) verwendet, in der Vermittlungsschicht IP (Internet Protocol). Das HTTP wurde 1990 unter anderem von Tim Berners-Lee entwickelt. Berners-Lee hatte 1989 seinem Arbeitgeber, dem Genfer CERN, einen Vorschlag zu einem netzwerkbasierten Informations-Management-System unter- breitet,1 aus dem das World Wide Web wurde. In Form eines Request For Com- ments (RFC) beschrieben wurde das HTTP 1996 in (Berners-Lee u. a. 1996) und 1998 in Version HTTP/1.1 in (Fielding u. a. 1999). Den RFCs ist zu entnehmen, wie für jede Anfrage eine Verbindung aufgebaut wird, die Daten übermittelt wer- den, und die Verbindung sofort wieder beendet wird. Mit neueren Webbrowsern und dem HTTP in Version 1.1 ist es auch möglich, eine TCP/IP-Verbindung auf- recht zu erhalten und darüber mehrere Request/Response-Folgen abzuwickeln.
HTTP ist ein zustandsloses Protokoll: Jeder Serverzugriff erfolgt einzeln und un- abhängig von den vorangegangenen oder nachfolgenden. Sollen Daten über meh- rere Seiten hinweg gespeichert bleiben, da ein Prozess mehrere Schritte erfordert, werden in der Regel Sessions genutzt. Dabei werden die zu speichernden Daten auf dem Server gespeichert und mit einer Referenz versehen, die entweder als Parameter an die URL angefügt wird oder in einem Cookie2 gespeichert wird.
In einer Statuszeile im Header wird für jedes HTTP-Paket vermerkt, ob es sich um eine Anforderung (Request) oder eine Antwort (Response) handelt. Bei Requests steht in der Statuszeile der Typ des Requests (z.B. GET, POST, PUT, ...) und der URI, auf den sich die Anforderung bezieht. Bei Responses wird ein Status-Code gesendet, der Auskunft über den Erfolg der Anforderung gibt (z.B. 200 für „OK“ oder 404 für „nicht gefunden“). Abhängig vom Statuscode kann weiterer Inhalt (z.B. ein HTML-Dokument, XML-Daten oder Binärdaten) in der Antwort enthalten sein.
In der Regel wird HTTP dazu verwendet, Webseiten auszuliefern. Allerdings wird HTTP längst nicht mehr ausschließlich für die Übertragung von Hypertext ver- wendet, sondern für viele unterschiedliche Zwe>Protocol (FTP) auch zur Datenübertragung, oder auch zum Nachrichtenaustausch (Chatten, Instant Messaging, ...). Es eignet sich für zahlreiche Anwendungen, die ohnehin das Transmission Control Protocol (TCP) auf der Transportschicht vor- aussetzen.
Das Hypertext Transfer Protocol eignet sich im Hinblick auf Ajax-Anwendungen auch dazu, unvollständige Webseitenfragmente, reine Textblöcke oder XML-strukturierte Daten zu übertragen.
HTTP überträgt Daten grundsätzlich unverschlüsselt, so dass die Informationen, die zwischen Webserver und Client ausgetauscht werden, von Dritten mitgeschnit- ten werden könnten. Soll eine Verschlüsselung zum Einsatz kommen, so bietet sich das Protokoll HTTPS an. Nach dem Austausch eines geheimen Schlüsselpaa- res werden die Daten mit Hilfe des SSL-Protokolls (Secure Sockets Layer, auch: Transport Layer Security (TLS)) verschlüsselt und anschließend abhörsicher über- tragen. Da HTTPS auf HTTP aufbaut, können Webseiten auf sehr einfache Weise von HTTPS Gebrauch machen.
2.2 Vergleich zwischen konventioneller und Ajax-Kommunikation
Der entscheidende Unterschied zwischen herkömmlichen Web-Angeboten und durch Ajax erweiterten Anwendungen auf Hypertextbasis ist das „Look and Feel“: Der User bekommt im besten Fall das Gefühl, es gar nicht mit einer Web-Anwendung, die im Browser läuft, zu tun zu haben, sondern mit einer Anwendung, die bei ihm lokal auf dem Desktop läuft. Das Ziel des Ajax-Einsatzes ist es in der Regel (vgl. z.B. Sixtus 2006), die Reaktionszeiten zu verringern, indem unnötige Seitenanfor- derungen vermieden werden. Weitere Vorteile liegen z.B. im reduzierten Traffic, da Daten nicht redundant übertragen werden müssen, und der damit verbundenen schnelleren Verfügbarkeit der Daten im Webbrowser, auch bei langsamer Interne- tanbindung.
Garrett (2005) verwendet anschauliche Grafiken, um den Unterschied zwischen klassischen und Ajax-Web-Applikationen zu verdeutlichen.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.1: Unterschied zwischen klassischen und mit Ajax erweiterten Web- Applikationen. Quelle: Garrett (2005)
Abbildung 2.1 zeigt oben den Verlauf der Benutzung einer klassischen Web-(Datenbank-) Anwendung: Bei jeder Aktion des Users erfolgt zunächst der Rückgriff auf den Ser- ver, bevor die Seite wieder für den User zur Verfügung steht. Die Unterbrechung des Pfeils „user activity“ verdeutlicht, dass für den Benutzer Zeiten der Inaktivität entstehen, wenn er auf die Antwort des Servers wartet.
Im unteren Teil der Abbildung wird dem die Nutzung von Ajax gegenübergestellt. Die Aktivität des Users wird an keiner Stelle unterbrochen. Wenn er Daten vom Server anfordert, so bleibt die angezeigte Seite im Browser erhalten und er kann weiter damit arbeiten. Die Anfrage an den Server und das Einfügen der Daten in die angezeigte Seite erfolgen im Hintergrund durch die „Ajax Engine“.
Wie Garrett (2005) es ausdrückt:
„An Ajax application eliminates the start-stop-start-stop nature of in- teraction on the Web by introducing an intermediary - an Ajax engine - between the user and the server. It seems like adding a layer to the application would make it less responsive, but the opposite is true.“
Im Folgenden werden die Technologien vorgestellt, die diesen zusätzlichen „layer“ bilden und zusammengenommen mit der Bezeichnung Ajax gemeint werden.
2.3 XML als universelle Beschreibungssprache
XML ist die gebräuchliche Abkürzung für „Extensible Markup Language“ (dt. „er- weiterbare Auszeichnungssprache“). Es handelt sich um eine Meta-Sprache, die meist zur logischen Strukturierung von Daten verwendet wird. XML ist ein Stan- dard, der definiert, wie solche strukturierten Dokumente aufgebaut werden müs- sen. Es handelt sich bei XML um eine Untermenge von SGML (Standard Generali- zed Markup Language).
Ein bekanntes Beispiel für eine Anwendung von XML ist HTML (Hypertext Mar- kup Language), die Auszeichnungssprache für Dokumente im World Wide Web. Bei HTML sind die verfügbaren Elemente vorgegeben, die zur Textauszeichnung genutzt werden können. Das World Wide Web wurde von Tim Berners-Lee ur- sprünglich als Informations-Management-System geplant, mit dem zunächst nur die Informationen im CERN strukturiert und zentral abgespeichert werden sollten. Erst im Laufe der Kommerzialisierung des Internets in den 1990er Jahren traten spezielle Elemente zur Formatierung hinzu (z.B. das <font>-Tag). Die ursprüngli- chen HTML-Tags umfassen hauptsächlich Elemente zur Textstrukturierung: Absät- ze, Überschriften, Tabellen, Listen und einfache Auszeichnungsmöglichkeiten zur fetten oder kursiven Textdarstellung.
XML ist jedoch sehr viel universeller als nur für (X)HTML einsetzbar und kann zur Strukturierung von beliebigen Daten verwendet werden. Dabei kommt eine hierarchische Baumstruktur zum Einsatz, in der es stets ein Root- oder WurzelElement geben muss, dem dann beliebig viele gleichartige oder verschiedene Elemente untergeordnet werden. Jedes Element besteht entweder aus einem beginnenden und einem schließenden Tag (<element> ...</element>) oder aus einem Empty-Element-Tag (<element />).
Folgerichtig kann XML zu den unterschiedlichsten Zwecken Verwendung finden. Das Bürosoftware-Paket OpenOffice.org3 verwendet zur Datenspeicherung ausschließlich das OpenDocument-Format, bei dem es sich um eine XML-Sprache handelt: Alle Dokumententypen (Text, Tabellen, Präsentationen, Grafiken) werden als strukturierte XML-Dateien gespeichert und mit ZIP komprimiert. Für Vektorgrafiken existiert das Standardformat SVG (Scalable Vector Graphics), mit dem zum Beispiel die freie Software Inkscape4 arbeitet, das aber mittels Plugins oder nativ (in Mozilla Firefox ab Version 1.5) auch in Webbrowsern verwendet werden kann. Auch Datenbanken auf XML-Basis existieren.
Häufig wird XML auch zur Definition von Schnittstellen (APIs) zwischen Softwareprodukten eingesetzt. Strukturierte Daten lassen sich in XML komfortabel von einer Anwendung an eine andere weitergeben.
Zur Transformation von XML-Daten in verschiedene Formate (z.B. Text, LaTeX, RTF, . . . ) existiert die Programmiersprache XSLT. Da sie bei Ajax in der Regel nicht zur Anwendung kommt, soll hier nicht näher auf XSLT eingegangen werden. Beschreibungen zur Funktionsweise finden sich z.B. bei White u. a. (2001, S. 125ff.) oder in der Wikipedia (Wkp: XSLT).
XML kommt bei Ajax aber in anderer Form zum Einsatz: Zum einen besteht die aufrufende Webseite aus HTML bzw. XHTML, zum anderen werden die Daten, die asynchron vom Server abgerufen werden, in aller Regel in XML-Form zurückgegeben. Es sei hier jedoch darauf verwiesen, dass der Server auch Plain-Text oder andere Datentypen zurückliefern kann.
2.4 Das Document Object Model (DOM)
Von besonderer Bedeutung im Zusammenhang mit Ajax ist das Konzept des „Document Object Model“ (DOM). Das DOM ist eine vom W3C5 standardisierte Schnittstelle, die es Anwendungen erlaubt, auf die Daten eines XML- oder auch HTMLDokuments zuzugreifen.
In der Regel sind es JavaScripts, mit denen der Zugriff auf das DOM einer Webseite erfolgt. Im folgenden Beispiel wird das Prinzip veranschaulicht:
Abbildung in dieser Leseprobe nicht enthalten
Listing 2.1: Einfache HTML-Struktur
Listing 2.1 zeigt eine sehr einfache HTML-Struktur: Als übergeordnetes Wurzel- element fungiert <html>. Darin enthalten sind zwei Kindelemente: <head> und <body>. Einziges direktes Kindelement von <body> (dem „Körper“ der Webseite) ist ein <table>-Element, in dem sich zwei Zeilen (<tr>) mit jeweils zwei Spalten (<td>) befinden. Innerhalb einer XML-Baumstruktur lassen sich folgende Typen von Abhängigkeiten finden:
Eltern ist eine Bezeichnung für übergeordnete Elemente. So ist HTML das Eltern- element für HEAD und BODY, TABLE das für die beiden TR-Elemente usw. Geschwister sind Elemente, die sich auf gleicher Ebene befinden und das gleiche
Elternelement haben - z.B. sind die beiden TR-Elemente Geschwister, und auch jeweils die TDs innerhalb eines TR-Elements. Auch HEAD und BODY sind Geschwister.
Kinder sind Elemente, die sich direkt innerhalb eines Elements befinden. Das letz- te TD-Element ist also ein Kind des zweiten TR-Elements, nicht aber des
HTML-Elements.
Aufgrund der Abhängigkeitsstruktur der Elemente lässt sich der Aufbau einer HTML- oder XML-Datei auch als Baum darstellen:
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2.2: Darstellung der HTML-Dokumentstruktur aus Listing 2.1 als Baum
Die Abhängigkeiten innerhalb des (X)HTML-Baumes wird sich das verwendete Framework Taconite (siehe Kapitel 3, S. 14) zu Nutze machen, um Daten dynamisch zu modifizieren.
Mit Hilfe des DOM wird es Programmen (z.B. der Skriptsprache JavaScript) ermöglicht, auf die Elemente des Dokuments direkt zuzugreifen, ihre Inhalte auszulesen und zu verändern. Dies ist für ein Verfahren, das nachträglich Webseiten verändern soll, unerlässlich.
2.5 JavaScript als standardisierte Browser-Skriptsprache
Eine Besonderheit von Ajax ist, dass für die Verwendung keine Browser-Plug-In wie Macromedia Flash oder eine Java-Laufzeitumgebung erforderlich sind, da Ajax auf existierende Web-Standards zurückgreift.
Statt dessen muss clientseitig JavaScript vorhanden sein. JavaScript war ursprünglich eine Erfindung von Netscape, die im Verlauf der 1990er Jahre in alle verbreiteten Browser implementiert wurde (im Microsoft Internet Explorer zunächst unter dem Namen JScript). Zu welchen Zwecken sich der Einsatz von JavaScript eignet, fassen Williams u. Lane (2005, S. 329) zusammen:
„JavaScript ist keine ausgewachsene Programmiersprache wie PHP
- es kann keine Verbindungen zu Datenbanken herstellen, kann mit bestimmten Systemressourcen oft nur eingeschränkt interagieren und ist für die meisten Aufgaben, die für eine Webdatenbank-Anwendung erforderlich sind, nicht geeignet. JavaScript ist jedoch gut, wenn es um die Interaktion mit Formularen und um die Steuerung der Anzeige der Daten für den Benutzer geht.“
Zu diesen Zwecken bietet JavaScript einen hohen Funktionsumfang: Es ist damit möglich, objektbasiert zu entwickeln (wobei hier im Unterschied zu objektorientierter Programmierung als Prototypen statt Klassen Objekte zum Einsatz kommen). Mit Java hat JavaScript außer dem Namensbestandteil nur gemeinsam, dass beide eine C-ähnliche Syntax verwenden. In der Semantik unterscheiden sich die Sprachen jedoch so stark wie in ihrem Einsatzbereich.
Die JavaScript-Version 1.5 wurde von der ECMA als ECMAScript standardisiert (Ecma International 1999). Alle aktuellen Browser unterstützen JavaScript, allerdings sind einige Funktionen unterschiedlich implementiert, so dass es häufig zu Problemen bei der Inter-Browser-Kompatibilität kommt. Für viele Anwendungsfälle sind daher Browserweichen notwendig, die zunächst feststellen, in welchem Browser das Skript aufgerufen wird, bevor der eigentliche Code ausgeführt wird (vgl. Bergmann u. Bormann 2005, S. 57f.).
Auch sollte dem Entwickler von Web-Anwendungen bewusst sein, dass einige Benutzer JavaScript im Browser abschalten, um Sicherheitsrisiken zu vermeiden. Insbesondere bei älteren Versionen des Microsoft Internet Explorer hat es wiederholt Sicherheitslücken gegeben (vgl. Heise Security: MSIE), die unter anderem auch auf die enge Verstrickung mit ActiveX zurückzuführen sind, das den Zugriff auf einige Systemressourcen erlaubt.
2.6 Das XMLHttpRequest-Objekt in JavaScript und ActiveX
Klassisches JavaScript ist, wie im Zitat von Williams u. Lane (2005, S. 329) auf S. 10 dargestellt, nicht dazu in der Lage, mit einer Datenbank zu kommunizieren. Benötigt man nun doch einmal nachträglich Daten aus einer Datenbank, um Berechnungen durchzuführen oder Elemente der aktuellen Webseite zu ändern, muss ein Weg gefunden werden, mit dem Server zu kommunizieren.
Als Workaround für dieses Problem wurden in den vergangenen Jahren gelegent- lich iFrames (Inline Frames) oder unsichtbare Frames eingesetzt, in denen die Abfrage aufgerufen wurde und die dann die Antwort per JavaScript an den eigent- lichen Frame zurückgegeben haben. Die Ajax-Anwendung Google Maps6 verwen- det dieses Verfahren. In den meisten Fällen wurde jedoch klassisch eine Anfrage an den Server geschickt und als Antwort eine komplett neue Seite aufgebaut.
Microsoft bietet seit der Version 4 oder 57 des Internet Explorers ein ActiveX- Objekt an, das es erlaubt, eine Anfrage an den Server zu schicken, und das die Antwort als XML-strukturierte Daten oder einfachen Text zurückgibt. Es handelt sich um das XMLHttpRequest-Objekt, das bei Microsoft mit Hilfe des Befehls xmlReq = new ActiveXObject("Microsoft.XMLHTTP"); erzeugt werden konnte/kann.
Während das Objekt heute in den meisten Browsern nativ in JavaScript imple- mentiert wurde (vgl. Wkp: XMLHttpRequest), ist es im Internet Explorer bis zur Version 6 immer noch als ActiveX-Objekt realisiert. Dies ist problematisch, da ActiveX in der Vergangenheit oft durch Sicherheitsprobleme Aufmerksamkeit erregte und daher auf vielen Computern abgeschaltet ist. Für Version 7 ist auch im Microsoft Internet Explorer eine native Unterstützung geplant.
2.7 Zusammenspiel der Komponenten für asynchrone Anwendungen
Von Ajax-Technologie kann dann gesprochen werden, wenn die genannten Komponenten zusammenarbeiten, um Webseiten zu erstellen, die nachträglich Daten vom Server beziehen können, ohne komplett neu aufgebaut werden zu müssen. In der Wikipedia findet sich eine gute Übersicht über die nötigen Technologien und ihre Rollen (Quelle: Wkp: Ajax):
- HTML (oder XHTML) und CSS zur Formatierung einer Webseite.
- Document Object Model zur Repräsentation von Daten bzw. Inhal- ten.
- JavaScript zur Manipulation des Document Object Models und zur dynamischen Darstellung der Inhalte. JavaScript dient gleichzeitig als Schnittstelle zwischen einzelnen Komponenten.
- XML als Datenaustauschformat.
- XSLT zur Datentransformation.
- Das XMLHttpRequest-Objekt, um Daten auf asynchroner Basis mit dem Webserver austauschen zu können. (In diesem Kontext wird vornehmlich XML als Trägermedium der einzelnen Daten benutzt. Es ist jedoch auch denkbar, formatiertes HTML, einen ASCII-Text, JSON oder gar EBML zu verwenden).
Im Detail können einzelne Aufgaben auch von anderen Technologien übernom- men werden. Sofern der Einsatzzweck ähnlich ist, kann dennoch von Ajax gespro- chen werden. Mahemoff (2005) weist darauf hin, dass der Begriff Ajax keine Aus- kunft über die verwendeten Technologien gibt. In der Regel wird aber die Zusam- menarbeit der oben genannten Technologien gemeint, so auch in dieser Arbeit.
Zentrale Rollen nehmen das DOM und JavaScript ein. Das DOM erfüllt die Aufga- be, die Webseite in einer Baumstruktur zur Verfügung zu stellen. Das HTML oder XHTML sollte möglichst die Struktur des Dokumentes wiederspiegeln, für die for- male Gestaltung sollte auf Cascading Style Sheets (CSS) zurückgegriffen werden. JavaScript stellt die XMLHttpRequest-Komponente bereit, mit der die asynchro- ne Server-Kommunikation abläuft. Die Anfrage, meist in Form eines GET- oder POST-Requests (möglich sind aber auch z.B. HEAD und PUT), wird an den Ser- ver geleitet, dieser erzeugt als Antwort z.B. XML-konforme Daten, die clientseitig ausgewertet werden müssen. Diese Auswertung übernimmt wieder JavaScript. In der Regel erfolgt eine Manipulation des aktuellen Dokuments über das Document Object Model.
[...]
1 http://www.del.icio.us
2 http://www.flickr.com
3 http://maps.google.com
4 geprägt wurde der Begriff von Jesse James Garrett in (Garrett 2005)
1 nachzulesen unter http://www.w3.org/History/1989/proposal.html
2 Cookies wurden von Netscape entwickelt und später in (Kristol u. Montulli 1997) standardisiert
3 http://de.openoffice.org
4 http://www.inkscape.org
5 World Wide Web Consortium, http://www.w3.org
6 http://maps.google.com
7 Darüber finden sich in der Literatur widersprüchliche Angaben. Bergmann u. Bormann (2005) gehen von Version 5.0 aus, in (Wkp: Ajax) ist jedoch die Rede von Version 4.0
- Arbeit zitieren
- Stefan Großmann (Autor:in), 2006, Erweiterung einer Web-Datenbank-Applikation mit Ajax-Elementen, München, GRIN Verlag, https://www.grin.com/document/87573
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.