Java Reference
In-Depth Information
gleichzeitigen Abarbeitung von Aufgaben kann auch durch geschickte (und
meist schnelle) Wechsel zwischen sequenziell ausgeführten Aufgaben gewech-
selt werden, was insbesondere bei nur einem Prozessor oder allgemein einer
nicht multithreadingfähigen Umgebung auch so gemacht werden muss. Für den
Anwender oder Anwendungsprogrammierer ist dieses Hintergrundprozedere
aber in der Regel weder erkennbar noch interessant.
Derzeit wird für eine Auteilung verschiedener Aufgaben über Web Worker in den meisten
Engines eine ereignisorientierte Abarbeitung umgesetzt, was eben auch besagte geschickte
Wechsel zwischen im Grunde sequenziell ausgeführten Aufgaben beinhaltet und was letzt-
endlich für den JavaScript-Programmierer gleichgültig ist.
HInWEIS: Im Grunde beherrschen zum Zeitpunkt der Bucherstellung alle wich-
tigen Browser Web Worker mehr oder weniger stabil. Dennoch ist die Technik
nur eingeschränkt praxisfähig, denn insbesondere der Internet Explorer hängt
auch in neuen Versionen massiv hinterher und bietet selbst in der Version 9
noch keine Unterstützung. Zudem kann man bei komplexeren Strukturen von
Workers derzeit nicht sicher sein, dass alle Browser diese identisch ausführen.
14.1.1■Erzeugen von Web Workers
Erzeugt werden Web Workers ganz einfach als Objekte vom Typ der neuen Klasse Worker .
Beispiel:
Listing 14.1■ Ein Web Worker wird erzeugt.
var thread1 = new Worker('hintergrundarbeit.js');
Als Parameter wird einfach ein Skript übergeben, das im Hintergrund ausgeführt werden
soll. Dabei adressieren Sie das Skript relativ zur Webseite . Die Anweisung zur Erzeugung
des Objekts startet auch unmittelbar den Worker-Prozess! Was Sie konkret für eine Aufgabe
an einen Web Worker übergeben, ist Ihnen vollkommen freigestellt. In der Regel wird es
aber eine Aufgabe sein, die relativ zeitaufwendig ist und den normalen Ablauf der Inter-
aktion mit einem Anwender unnötig blockieren würde, etwa eine umfangreiche Berech-
nung. Sie können Web Worker schon beim Laden der Webseite starten, aber in der Regel ist
es sinnvoll, einen Web Worker wie eine klassische Funktion aufgrund irgendeines Ereignis-
ses (etwa den Klick auf eine Schaltläche) zu starten. Beide Varianten werden wir in prakti-
schen Beispielen sehen.
HInWEIS: Aus einem Web Worker heraus haben Sie keinerlei Zugrif auf den
DOM . Sie sind auf pures JavaScript beschränkt, was alle nützlichen Dinge wie
einen Timer über window.setTimeout() , window.alert() oder die Eigen-
schaten des navigator -Objekts nicht verfügbar macht. Wenn Sie Aktionen
Search WWH ::




Custom Search