Worker

L'interface Worker de l'API Web Workers représente une tâche de fond qui peut facilement être créée et peut envoyer des messages en retour à son créateur. Créer un Worker est aussi simple que d'appeler le constructeur Worker(), en spécifiant un script qui définira le comportement du thread du worker.

Notez qu'un worker peut lui aussi lancer d'autre Worker tant que ces autres workers sont hébergés par une page qui a la même origine que la page parente. De plus les workers peuvent utiliser XMLHttpRequest pour les communiquer avec le réseau, à l'exception des attributs responseXML et channel qui vont toujours retourner null.

Toutes les interfaces et toutes les fonctions ne seront pas disponibles pour le script associé au worker.

Dans firefox, si vous souhaitez utiliser les workers dans une extension et que vous souhaitez avoir accès au js-ctypes, vous devez utiliser le ChromeWorker à la place.

Propriétés

Il hérite de propriétés de son parent, EtentTarget, et implémente les propriétés de AbstractWorker.

Gestionnaires d'événements

AbstractWorker.onerror
Est un EventListener qui est appelé quand un ErrorEvent de type error arrive dans le worker. Il est hérité de AbstractWorker.
Worker.onmessage
Est un EventListener qui est appelé quand un MessageEvent de type message arrive dans le worker — i.e. quand un message est envoyé au documen parent depuis le worker via DedicatedWorkerGlobalScope.postMessage. Le message est stocké dans la propriété data de l'événement.

Constructeurs

Worker()
Crée un web worker dédié qui execute le script qui est au bout de l'URL spécifié. Les workers peuvent ausse être créé en utilisant les Blobs.

Méthodes

Il hérite de son parent, EventTarget, et implément les propriétés de AbstractWorker.

Worker.postMessage()
Envoie un message, qui est n'importe le quel des objets JavaScript  vers la cloture du worker.
Worker.terminate()
Termine immédiatement le worker. Ceci n'offre aucune chance au worker de finir son opération en cours, il est simplement arrêté une fois pour toute. Les instances de ServiceWorker ne supportent pas cette méthode.

Exemple

L'extrait de code suivant montre la création d'un objet Worker en utilisant le constructeur Worker() et l'utilisation de l'objet :

var monWorker = new Worker("worker.js");
var premier = document.querySelector('#numero1');

premier.onchange = function() {
  monWorker.postMessage([premiere.valeur, deuxieme.valeur]);
  console.log('Message envoyé au worker');
}

Pour un exemple complet, voir Exemple basique de worker dédié (exécuter le worker dédié).

Spécifications

Spécification Status Commentaire
WHATWG HTML Living Standard
La définition de 'Worker' dans cette spécification.
Standard évolutif Pas de changement depuis Web Workers.
Web Workers
La définition de 'Worker' dans cette spécification.
Brouillon de l'éditeur Définition initiale

Compatibilité avec les navigateurs

Fonctionalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique (Oui) (Oui) 10.0 (Oui) (Oui)
Fonctionalité Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Support de base (Oui) (Oui) 10.0 (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : laruiss, khalid32, DrJeffrey, JonathanMM, benjiiiiii
 Dernière mise à jour par : laruiss,