Uncaught ReferenceError: importScripts n'est pas défini

Pourquoi est-ce que je continue d'obtenir cette erreur?

Je devrais pouvoir utiliser cette fonction globale correctement?

Http://www.html5rocks.com/fr/tutorials/workers/basics/

J'utilise chrome.

J'utilise https://code.google.com/p/bitjs/ et ça commence par

importScripts('io.js'); importScripts('archive.js'); 

    Ce code doit être dans un script de travail. Le travailleur lui-même est créé via un nouvel objet Worker – voir Démarrer dans le didacticiel .

    Le code que vous avez lié se trouve dans le travailleur créé ici .

    Lorsque vous créez un travailleur, il est réellement exécuté deux fois. La première passe est dans le contexte de l'objet 'fenêtre' global (ce qui signifie que vous avez accès à toutes les fonctions de l'objet fenêtre). Le second appel est dans le contexte du travailleur qui a un objet global différent, où "importScripts" existe.

     // proper initialization if( 'function' === typeof importScripts) { importScripts('script2.js'); addEventListener('message', onMessage); function onMessage(e) { // do some work here } } 

    Notez que addEventListener est dans l'instruction if. Si vous le placez en dehors de celui-ci, votre rappel sera enregistré deux fois. Une fois sur la «fenêtre» globale et une fois sur le marché du travailleur.

    Bonne codage!

    J'ai également rencontré cette erreur. Dans mon cas, c'est parce que je teste le code en utilisant Karma / Jasmine. En raison du cadre de test, le fichier worker.js est également chargé par thread principal.

    J'ai évité cette erreur en enveloppant le fichier worker.js avec:

      if( 'undefined' === typeof window){ importScripts('workerscript2.js'); ... } 

    Veuillez vous référer au commentaire ci-dessous par Rob, qui offre une solution alternative.