Veröffentlichen auch Sie Ihre Arbeiten - es ist ganz einfach!
Mehr InfosStudienarbeit, 2008, 62 Seiten
Studienarbeit
1
1 Einleitung
1.1 Fragestellung
1.2 Herangehensweise an das Thema
1.3 Aktualität
2 Allgemeines zu AJAX
2.1 Das ist AJAX
2.2 Entstehungsgeschichte
2.3 Namensgebung
2.4 Anwendungsgebiete
2.5 Anwendungsbeispiele
2.6 Frameworks
3 Allgemeines zu Flash
3.1 Das ist Flash
3.2 Entstehungsgeschichte
3.3 Anwendungsgebiete
4 AJAX vs. Flash
4.1 Lesezeichen und Zurück-Schaltfläche
4.2 Actionscript vs. JavaScript
4.3 Performance
4.4 Ereignisse
4.5 Suchmaschinen
4.6 Usability
4.7 Stylesheets (CSS)
4.8 Animationen
4.9 Browserkompatibilität
4.10 Erweiterbarkeit
4.11 Umgang mit Vektor und Pixelgrafiken
4.12 Umgang mit Audio Video
4.13 Sicherheitslücken
4.14 Sicherheit (bzgl. Skripte)
4.15 Einsatz auf mobilen Endgeräten
4.16 Gestaltung
4.17 Kosten (Lizenzen)
4.18 Accessibility (Barrierefreiheit)
4.19 Validation von Formulardaten
4.20 Verbindung zum Server
4.21 Polling
4.22 Flash und AJAX in Kombination
5 Praktische Einsatzbeispiele für AJAX und FLASH
6 Zukunft von AJAX bzw. Flash
7 Schlussfolgerung
8 Literaturverzeichnis
8.1 Lehrbücher:
8.2 Quellen aus Fachzeitschriften
8.3 Online
Das Internet entwickelt sich zu einem immer wichtiger werdenden Medium, welches mittlerweile aus unserem täglichen Leben schon gar nicht mehr weg zu denken ist. Da das Angebot stetig ansteigt und die Fülle an Information somit immer größer wird, ist die ursprüngliche Navigation, sich von Seite zu Seite durch zu klicken, nicht mehr besonders förderlich und zeitgemäß. Lange Zeit war das Internet sehr statisch und in Punkto individueller Gestaltungsmöglichkeiten sehr stark eingeschränkt. Lediglich mit Flash war man in der Lage, das Ganze aufzulockern und seinen eigenen kreativen Künsten und Vorstellungen, freien Lauf zu lassen. Mit neuen und erweiterten Technologien wie XHTML und CSS, war man später in der Lage Inhalt von Layout zu trennen und damit die Inhalte auch barrierefrei und flexibler zu gestalten. Mit AJAX haben die Standardtechnologien gegenüber Flash deutlich aufgeholt und sind nunmehr auch in der Lage, Inhalte dynamisch nachzuladen und somit einen neuen Weg zu gehen, um noch flexibler und schneller die gewünschten Informationen abzurufen. Jedoch bergen diese neuen Möglichkeiten auch wieder neue Probleme bzw. Herausforderungen sowie Stolpersteine in sich, die es zu erkennen und lösen gilt. Fragen, für welche Bereiche die ein oder andere Technologie eventuell besser geeignet ist, welche Vor- und Nachteile es gibt, welche Problem es (noch) gibt bzw. geben kann, welche Fehler man vermeiden sollte und was man dagegen machen kann, soll Gegenstand dieser Facharbeit sein.
Um mich an dieses Thema heran zu arbeiten, werde ich zunächst ein paar allgemeine Dinge über AJAX und Flash berichten, um dem Leser eine erste Verständnisgrundlage zu verschaffen.. Anschließend werde ich an definierten, relevanten Kriterien wie z.B. Usability, Suchmaschinen-optimierung, Gestaltung etc., diese beiden Technologien vergleichen und auf die Unterschiede bzw. die Gemeinsamkeiten sowie Vor- und Nachteile, zu sprechen kommen. Abschließend werde ich je Kriterium ein kurzes Resümee ziehen. Nach dieser Analyse werde ich mir ein paar typische Webseiten für AJAX und Flash heraussuchen und anhand dieser erläutern, warum diese gerade mit Flash und/oder AJAX realisiert worden sind. Zu guter Letzt werde ich noch auf die weitere Zukunft dieser beiden Technologien zu sprechen kommen.
Zurzeit entwickeln sich Webseiten immer mehr zu kompletten Webanwendungen, die nicht mehr an typische Webseiten erinnern, so wie es noch vor fünf Jahren der Fall war, sondern immer mehr an Anwendungen, wie man Sie eigentlich nur von typischen Desktopanwendungen her kennt. Sowohl AJAX als auch Flash sind in der Lage solche Anwendungen zu erstellen. Gerade in Punkto Usability müssen Entwickler noch einiges beachten und den User besser in die neuen Oberflächen einführen, sodass dieser, diese auch optimal nutzen kann.
Der klassische Weg um Daten von einem Browser zu einem Webserver wie z.B. Apache zu schicken, sieht vor, dass der User auf einen Button klicken muss, um die Datenübertragung einzuleiten. Bei AJAX ist es nicht mehr erforderlich die komplette Webseite neu zu laden, vielmehr werden gewisse Bereiche auf einer Webseite definiert, die aktualisiert werden sollen. Dabei ist es möglich viel feinkörniger auf diverse Eingaben des Benutzers bzw. Ereignisse, wie z.B. Anklicken eines Abbrechen Buttons oder Eingabe eines Tastenanschlages, zu reagieren.[1]
Der Anwender bekommt von der Datenübertragung zwischen Client(Browser) und Server nichts mit, da dies im Hintergrund durchgeführt wird.[2]
Ajax ist im Prinzip nichts Neues sondern nur eine „clevere Kombination“[3]. XHTML und CSS bilden dabei das Grundgerüst, hier werden die Inhalte wie Texte, Bilder, Videos etc. platziert bzw. eingefügt. XML wird dabei für den Austausch von Daten zwischen Server und Client verwendet. Das XMLHttpRequest Objekt ist dabei für den asynchronen Datenaustausch zuständig, welches es ermöglicht, auf einer bereits vollständig geladenen Webseite, Daten nachzuladen. Zu guter Letzt muss noch eine Möglichkeit geschaffen werden, um bereits vorhandene Daten im Webdokument nachträglich zu ändern, diese Aufgabe übernimmt Javascript bzw. das DOM (Document Object Model).[4]
Der Begriff AJAX taucht erstmals Anfang 2005 in Erscheinung. Jedoch war es schon viel früher möglich das Konzept von AJAX umzusetzen. Bereits 1998 brachte Microsoft einen Browser auf den Markt, der einen Baustein von AJAX enthielt und XMLHTTP hieß. Ziel von Microsoft war es damals die Desktop Anwendung Outlook im Internetbrowser, ohne Einbußen von Geschwindigkeit und Flexibilität auf Benutzeraktionen, darzustellen. Um das ständige Neuladen der gesamten Oberfläche zu unterbinden, entwickelte man dafür die neue Technik XMLHTTP, somit kann sich Microsoft zu Recht einer gewissen Pionierrolle rühmen. Da die Technik XMLHTTP seiner zeit nur im Internetexplorer verfügbar war, hinderte die neue Technik allerdings daran, sich weiter auszubreiten. Erst als die meisten Webbrowser in etwa eine gleiche Technik namens XMLHttpRequest implementiert hatten, wurde Sie für Entwickler interessant.[5]
Das erste asynchrone Anfrage-Antwort-Modell für Webanwendungen wurde allerdings schon viel früher mit Hilfe von Frames realisiert. Dabei wurde die Breite und die Höhe auf 0-Pixel gesetzt, sodass es im Browser nicht zu sehen war, deshalb nannte man dies auch die Technik der verborgenen Frames. Als 1997 IFrames in HTML 4.0 integriert wurden, konnte man auf das mühselige definieren von Framesets verzichten, nun war es möglich diese IFrames irgendwo auf der Seite zu positionieren und mit Hilfe von CSS ein- bzw. auszublenden. Als dann auch noch das DOM im Internetexplorer 5 und Netscape 6 implementiert wurde, war man sogar in der Lage diese IFrames dynamisch zu erstellen.
Diese Technik nannte man die Technik der verborgenen IFrames. Jedoch waren die Möglichkeiten, die diese beiden Techniken boten, längst nicht so umfangreich und komfortabel, wie es dann mit dem XMLHttp-Objekt von Microsoft möglich wurde.[6]
Die Erfindung des Begriffs AJAX ist wohl Jesse James Garrett bzw. seiner Firma Adaptive zuzuordnen, er sprach nämlich erstmalig in seinem Artikel „A New Approach to Web Applications“, von AJAX. Die zwei entscheidenden Sätze aus seinem Artikel:„Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web“[7] ins deutsche übersetzt von Reinhard Engel „Google Suggest und Google Maps sind zwei Beispiele für einen neuen Ansatz für Webanwendungen, den wir von AdaptivePath als Ajax bezeichnet haben. Die Name ist eine Abkürzung für Asynchronous JavaScript + XML. Er bezeichnet einen grundsätzlichen Wandel dessen, was im Web möglich ist.“[8]
Somit definiert er erstmalig den Begriff AJAX, wobei dies „nicht hundertprozentig geklärt“[9] ist.
Der Autor Gross bringt die Sache genau auf den Punkt: “Asynchrones JavaScript und XML [AJAX], ist sowohl alt als auch neu – alt, weil bereits vorhandene Technologien verwendet werden, aber neu, weil diese vorhandenen Technologien auf eine Weise kombiniert werden, die nur wenige vorher erwogen haben.“[10]
Eine große Rolle spielt AJAX vor allem in so genannten Rich Internet Applications, im Folgenden einfach RIA abgekürzt.
Damit ist gemeint, dass eine solche Webanwendung mehr an eine FAT Client Anwendung erinnert, als an eine typische Webseite. Ziel bei der Entwicklung von RIAs sollte es sein, das der Anwender gar nicht merkt, dass er sich mit seiner Anwendung im Internet befindet. Wobei dies nicht bedeutet, dass RIAs nur mit AJAX realisiert werden können. Der Autor Frank Zammetti spricht sogar von einem Paradigmenwechsel, da er in AJAX eine Technologie sieht, die erstmals vor allem die Anwender und nicht nur die Entwickler überzeugen kann. Damit meint er, das es in der vergangenen Zeit schon viele neue Technologien gab, die groß angepriesen wurden und durchaus auch viel versprechend aussahen, allerdings nur aus Entwickler- bzw. Herstellersicht. Bei AJAX ist dies anders, da der Anwender sofort den Vorteil, für sich erkennen kann. Sichtbar wird dies in der Form, das die Anwendungen schneller reagieren, weitere Funktionen wie Vorschlagslisten sowie sofort sortierbare Tabellen und die Aktualisierung von Master-Detail-Anzeigen in Echtzeit ermöglicht werden und dies alles ohne entsprechende Plugins wie z.B. Flash..[11]
Einige der bedeutesten und bekanntesten Beispiele für AJAX Applikationen, die auch in der gängigen Literatur immer wieder hervorgehoben werden, stellen z.B. Google Suggest[12], Google Mail(Gmail)[13] und Google Maps[14] dar. Es gibt zwar noch eine Vielzahl von anderen Beispielen, im Rahmen dieser Arbeit werde ich mich aber auf einige wenige Beispiele beschränken. Google ist weder das erste noch das beste Anwendungsbeipiel für AJAX, trotzdem ist Google maßgeblich dafür verantwortlich, das AJAX so schnell bekannt wurde und deshalb besonders erwähnenswert.[15]
Auf Google Suggest und auf ein weiteres AJAX Beispiel werde ich weiter unten noch einmal zu sprechen kommen.
Frameworks oder auch Toolkits stellen Lösungen für immer wiederkehrende Aufgaben in der Ajaxwelt zur Verfügung. Somit können Entwickler bei der Realisierung von Ajax-Projekten auf diese Frameworks zurückgreifen und müssen somit nicht immer wieder das Rad neu erfinden. Dabei können die Frameworks ganz verschieden sein. Einige Frameworks stellen Javascript-Erweiterungen in Form von ganzen Bibliotheken mit nützlichen Funktionen zur Verfügung, andere laufen auf dem Webserver und sind mit z.B. PHP, Java etc. implementiert. Wieder andere Frameworks stellen Möglichkeiten zur visuellen Gestaltung zu Verfügung.[16]
Flash ist ursprünglich dafür entwickelt worden, um es zu ermöglichen auf relativ einfache Weise Animationen für das Web zu erstellen und damit das doch sonst so statische Internet ein wenig lebendiger und interessanter zu gestalten.
In seiner grundsätzlichen Funktionsweise unterscheidet sich Flash deutlich von den anderen Technologien. Flash arbeitet nämlich auf der Basis von Zeitleisten, diese geben wie bei einem Film einen linearen Verlauf vor. Dabei Kennzeichnen so genannte Schlüsselbilder Veränderungen in der Animation. Die einzelnen Animationen auf den Ebenen, können dabei hintereinander, verschachtelt oder unabhängig voneinander abgespielt werden. Auf diesen Ebenen können verschiedene Elemente platziert werden, die wiederum mit oder ohne Bewegung dargestellt werden können. Dabei können die verwendeten Elemente mit Flash erzeugt oder importiert werden. Bei Bedarf kann die Programmlogik mit Hilfe von Actionscript programmiert werden. Die primären Funktionalitäten von Flash waren ursprünglich auf Vektoren gestützt, wodurch die eigentliche Dateigröße auch sehr gering gehalten und die Grafiken verlustfrei skaliert werden konnten. Flash arbeitet mit zwei unterschiedlichen Dateiformaten, zum einen gibt es da die FLA-Datei, womit in der Regel der Entwickler arbeitet und zum anderen die SWF-Datei die für den Betrachter bzw. für den Flash Player benötigt wird.[17]
Alles begann damit, dass sich die beiden Firmen MacroMind und Authorware 1992 zu einer neuen Firma Namens Macromedia zusammengeschlossen haben. Vier Jahre später übernahm Macromedia die Firma Future Wave, die den ersten Vorläufer von Flash namens FutureSplash-Animator und einem dazugehörigem Player für Webbrowser auf den Markt gebracht hatte. Macromedia entwickelte diesen unter dem Namen Flash und dem Shockwave Flash Player weiter. 1997 kam dann Flash in der ersten Version, mit dem entsprechenden Shockwave Flash Player auf den Markt. Mit dieser Version war es nun auch erstmalig möglich Audio- und Bitmapformate einzubinden. Doch damit nicht genug, noch im selben Jahr wurde schon die zweite Version veröffentlicht, die im Wesentlichen die Einbindung von Bitmaps optimierte und dem Entwickler neue Möglichkeiten an die Hand gab, einfache Interaktionen in Flash umzusetzen. In der dritten Version, die 1998 veröffentlicht wurde, war es möglich Aktionen auf Schlüsselbilder und Bilder zu platzieren, außerdem wurde in die Entwicklungsumgebung der Flash Player integriert, dadurch wurde dem Entwickler das testen von Flash Projekten erheblich erleichtert. Mit der vierten Version, die 1999 auf den Markt kam, wurde Flash nun auch dynamisch, mittels Integration der Programmiersprache Actionscript war es ab sofort möglich komplexe Formular, Spiele und den Datenaustausch zwischen Client und Server zu realisieren. Im Jahr 2000, mit der Version 5, wurde Actionscript dem ECMAScript-Standard angepasst, dem auch Javascript zugrunde liegt. Dadurch wurde die Arbeit für die Entwickler erheblich angenehmer, da diese Syntax, anderen Programmiersprachen ähnelte. Außerdem kam ein Debugger für Actionscript hinzu, mit dem es einfacher wurde, Fehler im Code zu finden und damit viel Zeit zu sparen. Des Weiteren kamen neue Objekte hinzu, die das Einbinden von externen Formaten z.B. von XML, vereinfachten. Zu der Version Flash MX (Version 6), die 2002 auf den Markt kam, ist zu sagen, das sie hauptsächlich die Vorgängerversion verbesserte und weiterentwickelte. Unter anderem wurde der ECMAScript-Standard noch strikter berücksichtigt, dadurch wurden die Entwickler nun gezwungen sauberer zu programmieren und dadurch Fehler zu vermeiden. Außerdem ermöglichte eine neue Zeichen API die Erstellung von dynamischen Formen. Mit der Erweiterung der Funktionsbibliothek um einen Videocodec war Flash nun auch in der Lage mit Videos zu arbeiten. Mit Flash MX 2004 (Version 7), die 2003 auf den Markt kam, wurde Actionscript 2 eingeführt, mit der es nun möglich war objektorientiert zu programmieren. 2004 kam dann noch ein letztes Update seitens Macromedia auf den Mark, welches die Entwicklungsumgebung wesentlich stabiler und die Performance erheblich verbesserte. 2005 wurde Macromedia, für ca. 3,5 Milliarden Dollar von dem Software Konzern Adobe gekauft. Adobe brachte dann kurze Zeit später Flash 8 mit einigen Neuerungen auf den Markt. Mit dieser Version war es nun möglich Bitmaps mit Hilfe von Actionscript-Klassen zu erzeugen oder auch zu verändern bzw. wie man es aus Photoshop kennt diese auch mit diversen Filter bzw. Mischmodis zu versehen. Außerdem wurde eine neue Text-Engine, ein Standalone-Video-Encoder, Datei-Upload, Bitmap-Caching, ein neuer Videocodec mit Alphakanal-Unterstützung sowie eine leichter zu bedienende Oberfläche geschaffen. 2007 wurde Flash CS3 (Version 9), die erste vollständig von Adobe entwickelte Version, veröffentlicht.[18]
Der Anwendungsbereich von Flash und besonders von der neuen CS3 Version sind sehr vielfältig. In Punkto Webseitengestaltung und Design werden dem Entwickler nahezu keinerlei Grenzen gesetzt. Schaltflächen und Navigationsstrukturen können jedes beliebige Aussehen annehmen. Somit kann Flash den stetig, steigenden Ansprüchen der Anwender gerecht werden. Auch in der Werbebranche wird Flash sehr häufig verwendet, da auf eine einfache Art und Weise ansprechende Werbebanner erstellt und mit diversen Interaktivitäten für den User versehen werden können, somit ist auch hier Flash nicht mehr weg zu denken. Das Flash Plugin wird sehr häufig auch zum reinen abspielen von Video und Audio Inhalten verwendet, da es mit effizienten Komprimierungsmethoden arbeitet und zudem eine gute Qualität der Inhalte erhalten bleibt. Außerdem bietet Flash, auf einer Art die seinesgleichen sucht, eine sehr einfache und komfortable Lösung, innerhalb von Flash-Projekten mit multimedialen Inhalten umzugehen. Flash wird immer häufiger, anstatt Powerpoint, für Präsentationen, online wie auch offline verwendet, da man bei Flash nicht auf fest definierte Animationen beschränkt ist und somit seinen eigenen Ideen freien Lauf lassen kann. Ein weiterer Vorteil von Flash gegenüber Powerpoint ist, das man die SWF-Datei in eine Projektor-Datei umwandeln und somit die Präsentation auch Offline, ohne Powerpoint abspielen kann. Flash wird häufig auch für Produkt Simulationen eingesetzt, da es in der Lage ist, durch Verschachtelung einzelner Animationen, selbst komplexeste Funktionsweisen bzw. Verfahren auf eine einfache und übersichtliche Weise darzustellen. Flash wird außerdem für die Erstellung, als auch zum Nachbau, von professionellen Zeichentrickfilmen eingesetzt. In Rich Internet Applications, CM-Systemen, Newstickern, Spielen und in der grafischen Aufbereitung von statistischen Auswertungen, wird Flash auch sehr häufig angewendet. Eine noch nicht ganz so große, aber doch immer wichtiger werdende Rolle spielt Flash im mobilen Bereich, für den ein eigener Player, der so genannte Flash Lite Player zur Verfügung steht (Device Central).[19]
Hierauf werde ich später, unter dem Punkt „Einsatz auf mobilen Endgeräten“, noch weiter eingehen.
4 AJAX vs. Flash
Prinzipiell lässt sich sagen, dass Flash im Ergebnis all das kann, was AJAX auch kann. Das bedeutet allerdings noch lange nicht, dass Flash für jeden Anwendungsfall die bessere Lösung ist.
[...]
[1] Vgl. Zammetti, Ajax Praxis, 2007 S. 26f.
[2] Vgl. Camperl, AJAX Grundlagen, Frameworks, APIs, 2007, S. 11.
[3] Vgl. Gräning, Adobe Flash CS3, 2007 S. 36.
[4] Vgl. Mutz, Flash CS3, AJAX & PHP, 2007 S. 120.
[5] Vgl.Carl, Praxiswissen AJAX, 2006, S. 6.
[6] Vgl. Zakas, McReak, Fawcett, Ajax Professionell, 2006, S. 21f
[7] Garrett, Ajax: A New Approach to Web Applications, http://www.adaptivepath.com/ideas/essays/archives/000385.php (8.11.2007).
[8] Zakas, McReak, Fawcett, Ajax Professionell, 2006, S. 20.
[9] Carl, Praxiswissen AJAX, 2006, S. 2.
[10] Gross, Ajax 2007, S. 17.
[11] Vgl. Zammetti, Ajax Praxis, 2007 S. 31f.
[12] Siehe dazu http://www.google.com/webhp?complete=1&hl=en(9.11.2007).
[13] Siehe dazu http://mail.google.com/ (9.11.2007).
[14] Siehe dazu http://maps.google.de/ (9.11.2007).
[15] Vgl. Zammetti, Ajax Praxis, 2007 S. 33.
[16] Vgl. Steyer, AJAX, 2007 S.286.
[17] Vgl. Gräning, Adobe Flash CS3, 2007 S. 29.
[18] Vgl. Kannengieser, Flash 8, 2006 S. 23ff. Vgl. Dyadio, Flash CS3, 2007 S. 17.
[19] Vgl. Dyadio, Flash CS3, 2007 S. 18ff. Vgl. Kersken, Flash CS3, 2007 S. 4.
Kommentare