Quando si crea un lavoratore, viene effettivamente eseguito due volte. Il primo passaggio è nel contesto dell'oggetto globale 'finestra' (che significa che hai accesso a tutte le funzioni dell'oggetto finestra). La seconda chiamata attraverso è nel contesto del lavoratore che ha un oggetto globale diverso, uno in cui esiste "importScripts".
// proper initialization
if('function' === typeof importScripts) {
importScripts('script2.js');
addEventListener('message', onMessage);
function onMessage(e) {
// do some work here
}
}
Si noti che addEventListener si trova all'interno dell'istruzione if. Se lo posizioni al di fuori di esso, il tuo callback verrà registrato due volte. Una volta sulla 'finestra' globale e una volta sul globale del lavoratore.
Felice codifica!
fonte
2015-02-20 02:21:01
Come si genera l'operatore? – Bergi
Pensavo che questo avrebbe generato un lavoratore? Questo è il modo in cui lo usano in https://code.google.com/p/bitjs/source/browse/unzip.js – netigger
No, questo deve essere all'interno di uno script di lavoro. Vedere https://code.google.com/p/bitjs/source/browse/archive.js#278 su come lo fanno, o seguire le esercitazioni che hai collegato – Bergi