HTML 5 Javascript Parallel ([KOCH10], Kap. 10.3)

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