15
Internet Web Applications (Subject) / 3) Interaction Models (Lesson)
Advertisement
- Welche drei Interaction Models gibt es? Welche sind synchron bzw. asynchron? Synchronous Communication Model (s) Non Blocking Communication Model ("a", aber communication zwischen Server und Client s) Asynchronous Communication Model (a)
- Wie zeichnet sich das synchrone Interaction Model aus? Wie läuft es zwischen Client und Server ab? Um die angezeigten Daten zu aktualisieren wird ein HTTP Request an den Server gesendet. Solang keine Response erfolgt, ist der Client blockiert. Somit herrscht High Dependance zwischen HTTP Request und Response, da ohne Response kein Request gesendet werden kann, welcher aber nötig ist. Browser HTTP Request an Web Server -> Processing -> Server sendet (X)HTML Page -> Refresh
- Nachteile des synchronen Interaction Model? Langsam aufgrund von "Klicken, Warten, Refreshen" Exzessive Server Load und Bandbreite aufgrund von mehrmaligen unnötigen Refreshs Loss of Operation Context während dem Refreshen -> langsam, unzuverlässig, geringe Produktivität und Interaktion
- Was ist AJAX? Asynchronous Javascript and XML bezeichnet ein Konzept der asynchronen Datenübertragung zwischen einem Browser und dem Server. Dieses ermöglicht es, HTTP-Anfragen durchzuführen, während eine HTML-Seite angezeigt wird, und die Seite zu verändern, ohne sie komplett neu zu laden. Beispiel : Google Autocomplete, Youtubevideo läuft weiter während weitere Dinge laden
- Auf welchen Techniken basiert AJAX? (X)HTML DOM JavaScript XMLHttpRequest
- Wie funktioniert die AJAX Engine? User Action (zb. Klick) generiert ein JavaScript call an die AJAX Engine anstatt eines HTTP Requests Die Engine muss nicht für jede Action einen Request durchführen und kann selber bestimmen ob dies nötig ist -> Trennung von User Action und Kommunikation mit Webserver Sollte die Engine etwas vom Server brauchen, sendet diese wie gehabt einen HTTP Request an den Server, dies alles findent asynchron statt
- Was ist XMLHttpRequest? Eine Programmierschnittstelle für JavaScript zum Übertragen von Daten über HTTP. Entgegen dem Namen muss es sich bei diesen Daten nicht um XML handeln. XMLHttpRequest bildet einen Grundbaustein der Ajax-Technik.
- Welche Methoden (Befehle) besitzt XMLHttpRequest? open (method, URL, [async, "username, password"]) Pre-set-up vor der Serververbindung Methoden sind meist GET und POST send Aktiviert die Attribute der open-Methode Wenn GET, Wert = null Wenn POST, Wert = Schlüsselwerte (Bsp. page=1§ion=4) abort Bricht den momentanen Request ab
- Vor und Nachteile von AJAX? Daten können verändert werden ohne die ganze Seite neu zu laden. Wird von allen JavaScript Browsern unterstützt Reduziert Trafficverbrauch Spart Zeit schwer möglich, die Funktionalität der „Zurück“-Schaltfläche des Browsers zu gewährleisten, da URL nicht verändert wird Suchmaschinen können Daten nicht sehen (Da kein Javascript) Dauer bis AJAX Request gesendet hat (Da immer noch synchron) Polling (Dauersenden bei Applications, welche ständig geupdatet werden müssen -> Overhead)
- Warum verwendet man oft statt XML JSON? Nachteile? Um den XML-Overhead zu vermeiden Ebenso ist es Sprachenunabhängig und schon in JavaScript integriert Schwierig mehrere JSON Files zu kombinieren und zu mergen (name conflicts)
- Advertisement
- Was sind Websockets? Das WebSocket-Protokoll ist ein auf TCP basierendes Netzwerkprotokoll, das entworfen wurde, um eine bidirektionale (full-duplex) Verbindung zwischen einer Webanwendung und einem WebSocket-Server bzw. einem Webserver, der auch WebSockets unterstützt, herzustellen. Client und Server können zur gleichen Zeit Requests/Responds senden! Bereits in HTML5 integriert ->asynchron
- Vorteile von Websockets gegenüber HTTP? Es reicht wenn der Client die Verbindung öffnet, keine Requests vom Client für jede Aktion des Servers Server kann Informationen an Client geben ohne auf eine neue Verbindung des Clients zu warten Kein HTTP-Header Overhead Asynchron und Full-Duplex (TCP Verbindung bleibt bestehen)
- Welche Workarrounds hat man vor Websockets für PUSH-Kommunikation benutzt? COMET Ständiges Refreshen Polling (Ständiges nachfragen) AJAX Long Polls (Server solang Requests senden bis Antwort kommt)
- Was ist Comet? Comet ermöglicht Webservern Daten an den Client nur mithilfe eines HTTP Requests zu senden, danach ist keiner mehr nötig. (allows a web server to push data to a browser, without the browser explicitly requesting it) -> asynchron und niedrige Latenzzeit Comet ist ein Buzzword und umfasst mehrere Technologien, die dies ermöglichen. (Long Polling) Wurde aber von Websockets abgelöst.
- Wie unterscheiden sich Long Polling und Websockets? Long Polling (Comet) Immer noch ein HTTP Request vorhanden Sendet bei neuer Information eine Response und hält den Request solang bei sich (oder bis time-out) Keine unnötigen HTTP Requests Websockets (HTML5) Echte asynchrone Verbindung Keine HTTP Requests