Po utworzeniu pracownika jest on faktycznie wykonywany dwukrotnie. Pierwsze przejście jest w kontekście globalnego obiektu "okno" (co oznacza, że masz dostęp do wszystkich funkcji obiektu okna). Drugie wywołanie znajduje się w kontekście elementu roboczego, który ma inny obiekt globalny, taki, w którym istnieje "importScripts".
// proper initialization
if('function' === typeof importScripts) {
importScripts('script2.js');
addEventListener('message', onMessage);
function onMessage(e) {
// do some work here
}
}
Uwaga: addEventListener znajduje się wewnątrz instrukcji if. Jeśli umieścisz go poza nim, twoje wywołanie zwrotne zostanie zarejestrowane dwukrotnie. Raz w "oknie" globalnym i raz w świecie pracownika.
Szczęśliwe kodowanie!
Jak odradza się pracownika? – Bergi
Myślałem, że to spawn pracownika? Oto, jak używają tego w https://code.google.com/p/bitjs/source/browse/unzip.js. – netigger
Nie, musi to być wewnątrz skryptu roboczego. Zobacz https://code.google.com/p/bitjs/source/browse/archive.js#278, jak to robią, lub skorzystaj z samouczków, które podłączyłeś. – Bergi