Mit Webworker lässt sich das Verhalten des Browsers bei langen Berechnungen verbessern,
indem Javascript nicht im Vorder-, sondern im Hintergrund ausgeführt wird (= Thread). Auch lassen sich damit
Aufgaben zerteilen und getrennt ausführen. Ein klassisches Beispiel ist das Mandelbrot-
Apfelmännchen bzw. die Ermittlung von unendlichen Reihensummen.
Kommunikation mit dem WebWorker
Möglichkeiten zur Handhabung des Workers:
var worker = new Worker('test.js'); // Aufruf Worker
worker.postMessage('Nachricht'); // an den Worker
worker.onmessage = function(event) { alert(event.data); }; // Ergebnis vom Worker
worker.terminate(); // Worker beenden
Möglichkeiten im Worker:
onmessage = function(event) { run(); etc } // Starten, wenn eine Nachricht erhalten
postMessage ('Ergebnis'); // Ergebnis an den Aufrufer zurück
close(); // aktuellen Worker beenden
Damit lassen sich erstmal nur Zeichenketten mit der Messaging API austauschen, zukünftig sollen auch Objekte und JSON möglich sein.
Der Worker läuft in einer Sandbox, d.h. Kernfunktionen stehen zur Verfügung, aber z.B. kein altert(). Ein einmalig erstellter und
beendeter Worker kann nicht mehr weiter genutzt werden. In einem HTML-Dokument bezieht sich this auf das window-Objekt,
im Worker ist es die Worker-Instanz.
Test, ob das Objekt vom Browser unterstützt wird
Literatur:
[KOCH10], Daniel Koch, "HTML5 Grundlagen und Praxislösungen ", Data Becker Verlag, Düsseldorf [kein Jahr angegeben]
[RSBL11], Bruce Lawson, Remy Sharp, "HTML 5", Addison-Wesley Verlag 2011