Java Reference
In-Depth Information
Sie sehen, dass wir in dieser Variante zwar auch eine globale Variable ( th1 ) zur Referenzie-
rung auf den Worker haben, diese aber zuerst mit null initialisiert wird. Erst beim Klick auf
eine der Schaltlächen erzeugen wir jeweils den Worker und schicken ihm direkt das
gewünschte Signal. Wichtig ist, dass wir vorher bei jedem Klick zuerst einen eventuell lau-
fenden Worker mit terminate() beenden. Beachten Sie, dass die Variable immer den glei-
chen Worker referenziert. Damit können wir die Aufgaben des Worker gezielt abbrechen
und eine neue Aufgabe unmittelbar starten, wobei auch das natürlich ein spezielles Verhal-
ten ist, das nicht immer sinnvoll sein muss. Sie müssen Ihre eigene Logik hier anwenden.
nichtblockierende, parallele Abarbeitung verschiedener Aufgaben
in einem Worker
Eine weitere Variante des Aufbaus unseres Worker ist vielleicht auch noch ganz interessant
(kap14_4.html) , bei der wir in kap14_4.js gegenüber kap14_3.js nur die Beendigung des
Worker bei jedem Klick auf einen Button weglassen. Dann sorgen mehrere Klicks auf den
Button dafür, dass die verschiedenen Funktionen parallel gestartet und simultan (nicht
mehr chronologisch über eine Aufrufschlange) ausgeführt werden, wobei so ein Verhalten
schwer kontrollierbar ist.
14.2■WebSockets und serverseitiges
JavaScript mit node.js
Grundsätzlich existiert bei RIAs das Problem, dass die Verbindung zwischen dem Client und
dem Server mit einer gewissen Latenz (Verzögerungszeit) behatet ist. Das liegt im Wesentli-
chen an der Arbeitsweise von http. Grundsätzlich arbeitet man dort ja bekanntlich mit einem
Anforderungs- und Antwortmuster, bei dem immer der Client die Anforderung startet. Selbst
beim Einsatz von AJAX ändert sich dieser grundsätzliche Vorgang nicht - die gesamte http-
Kommunikation wird beharrlich vom Client gesteuert. Und damit ist auch eine AJAX-Appli-
kation zwar in vielen Situationen viel schneller als eine konventionelle Webapplikation, aber
es gibt immer noch relevante Verzögerungen, da jede neue Aktion vom Client angestoßen
werden muss und viel überlüssige Protokolldaten hin- und hergeschickt werden. Mit
WebSockets versucht man eine möglichst geringe Latenz zu implementieren, die auch im
Web (fast) eine Echtzeitverbindung zwischen Client und Server aufbauen. So etwas ist etwa
bei webbasierenden Online-Spielen mit mehreren Mitspielern, Echtzeitaktualisierungen von
sozialen Streams, Chats oder Live-Tickern zu sich schnell ändernden Ereignissen sinnvoll.
HInTErGrunDInFOrMATIOn: Socket -Verbindungen allgemein kennt man
schon lange aus vielen Programmiersprachen. Sockets gehen im Kern auf UNIX
zurück. UNIX-Sockets stellen eine Art rudimentäres (und damit leichtgewichti-
ges und performantes) Grundobjekt des Betriebssystems für die Internetkom-
munikation dar, welches das TCP-Protokoll unterstützt. Sockets verfügen dazu
über diverse leichtgewichtige Datenstrommethoden zur Ein- und Ausgabe, was
das Auslesen und Schreiben von Daten recht einfach macht.
Search WWH ::




Custom Search