25
  Referent: Torben Brodt   Veranstaltung: Fachseminar Webframeworks   Datum: 13.12.2007

AJAX

Embed Size (px)

DESCRIPTION

30 minütige AJAX Präsentation.Begonnen bei DOM, JavaScript und HTTP werden hier die Basics behandelt.Vermittelt gegen Ende viele technische Probleme, die mit AJAX kommen.Dadurch wird auf Folgepräsentationen vorbereitet, die behandeln wie die verschiedenen Web-Frameworks AJAX in den Griff bekommen.

Citation preview

Page 1: AJAX

  Referent:  Torben Brodt  Veranstaltung: Fachseminar Webframeworks  Datum: 13.12.2007

Page 2: AJAX

   

AJAX: Inhalt

1. Einführung

2. Technologien● JavaScript, DOM, HTTP

3. AJAX Code Beispiel

4. Abgrenzung JavaScript/AJAX

5. Probleme

Page 3: AJAX

   

Webanwendungen

Altes Web: Auf jede Reaktion folgen lange Ladezeiten Um 2005 revolutioniert AJAX den Begriff ~ Web 2.0? Nun gleicht Bedienung der von Desktop Anwendungen Google wurde technologischer Vorreiter mit:

Google Maps, Google Mail, Google Suggest Heute kompletter Office Ersatz

1/5

Page 4: AJAX

   

Webanwendungen 1/5

Page 5: AJAX

   

AJAX Einführung

Asynchronous JavaScript and XML AJAX ist keine Programmiersprache Zusammenführung mehrerer Technologien

DOM JavaScript HTTP

2/5

Page 6: AJAX

   

Was ist DOM?

Document Object Model Repräsentierung von Inhalten in einem Baum Standardisierung durch W3C (z.B. XHTML)

2/5

Page 7: AJAX

   

Was ist JavaScript?

Client­Skriptsprache ­ vom Browser interpretiert ”überall” verfügbar, wenig Anforderungen, keine VM Benutzt zur Ereignisbehandlung (hover, focus, ...) Dynamische Manipulierung des Dokuments (DOM) Problem: Teils unterschiedliche Funktionen zwischen 

verschiedenen Browsern Nähe zu Flash begründet! Gleiche Grundlage ECMA. 

JavaScript2 wird auf ActionScript 3 basieren.

2/5

Page 8: AJAX

   

JavaScript und DOM

Volle Kontrolle über den Client­Code Einbettung in ein <script> Element innerhalb <head> Traversierung, Manipulierung, ...

2/5

Page 9: AJAX

   

und HTTP? (synchron)

Normale Websites werden in einem Rutsch geladen Eine GET Anfrage Eine HTTP Antwort

2/5

Page 10: AJAX

   

asynchrones HTTP

Daten können live geholt/gesendet worden  Browser kapselt Request in eigenen Thread weder TCP, noch andere Socketverbindung nötig! Im Idealfall nur Datenübertragung ­ Teile werden 

aktualisiert

2/5

Page 11: AJAX

   

und HTTP? (asynchron) 2/5

Page 12: AJAX

   

AJAX Beispiel

Wir erzeugen ein XMLHttpRequest Objekt JavaScript Objekt zur HTTP Kommunikation

3/5

Page 13: AJAX

   

AJAX Beispiel

Wir öffnen die Verbindung

Wir legen eine Callback Methode fest

Wir schicken den Request ab

3/5

Page 14: AJAX

   

AJAX Beispiel

Callback ­ wir behandeln die Server­Antwort

XML Objekt vom Server und HTML Objekt des Clients werden beide durch DOM repräsentiert und identisch behandelt

3/5

Page 15: AJAX

   

AJAX Beispiel # 3/5

Page 16: AJAX

   

Wann spricht man von AJAX?

JavaScript Effekte sind kein AJAX Interaktivität und Asynchronität sind nicht das selbe

Interaktivität = Benutzer agiert mit Seite durch AJAX werden die Anfragen bis in ein 

Datenmodel im Backend durchgereicht durch Asynchronität muss der Benutzer während 

dem Nachladen nicht warten

4/5

Page 17: AJAX

   

Wann spricht man von AJAX?

Bewertungen live  Drag/Drop speichern  Instant Messaging online  Texte live ändern  Uploadbalken 

4/5

Page 18: AJAX

   

Probleme der Entwickler

Serverüberlastung (Polling­Problem) n­gleichzeitige Clients.. sekündliche Abfragen Client: HTTP Verbindung zum Server

Gibt es neue Nachrichten? Server: Verbindung zu Datenbank/IRC Socket

Ja, gibt es. Hier sind die Daten... Abfruf der Daten und Einfügen

5/5

Page 19: AJAX

   

Probleme der Entwickler

Clientüberlastung mehr und mehr Daten werden dem Client 

hinzugefügt DOM Baum wächst und wächst ­> häufiges  

Neurendern Operationen dauern länger, Speicherverbrauch 

steigt Hoffnung: JavaScript nutzt Garbage Collector

5/5

Page 20: AJAX

   

Probleme der Entwickler

Zeichenkodierung im Web Webserver, DBMS und Website (Metaangabe) 

benutzen im Idealfall alle UTF­8 Selbst mit Entities (&auml;) kann man Probleme 

erhalten, da wenn Entity nicht bekannt ”unvalid” Viele Sprachen bieten utf8_encode/decode

5/5

Page 21: AJAX

   

Probleme der Entwickler

Zeichenkodierung im Web Webserver, DBMS und Website (Metaangabe) 

sollten alle UTF­8 verwenden Selbst mit Entities (&auml;) kann man Probleme 

erhalten, da XML unvalide Viele Sprachen bieten utf8_encode/decode

5/5

Page 22: AJAX

   

Probleme der Entwickler

Browser­Navigation ­> Bookmarking ­> ... ­> Browserhistorie ­> Deep Links

5/5

Page 23: AJAX

   

Probleme der Entwickler

Überlappende, asynchrone AJAX Aufrufe Variante 1: Falsche Verwendung in einer Variablen Variante 2: Unbekannte Latenzzeit

5/5

Page 24: AJAX

   

Frameworks

vollständige und abgerundete Frameworks vorhanden aber unüberschaubarer Markt alle Frameworks unterscheiden sich in Kleinigkeiten

5/5

Page 25: AJAX

   

Fragen