--- title: Worker slug: Web/API/Worker tags: - API - DOM - JavaScript - Reference - Web Workers - Worker - Workers translation_of: Web/API/Worker ---
{{APIRef("Web Workers API")}}
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. (Note: Les workers imbriqués ne sont pas encore implémentés dans WebKit).
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 {{ domxref("ChromeWorker") }} à la place.
Il hérite de propriétés de son parent, {{domxref("EventTarget")}}, et implémente les propriétés de {{domxref("AbstractWorker")}}.
error arrive dans le worker. Il est hérité de {{domxref("AbstractWorker")}}.message arrive dans le worker — i.e. quand un message est envoyé au document parent depuis le worker via {{domxref("DedicatedWorkerGlobalScope.postMessage")}}. Le message est stocké dans la propriété {{domxref("MessageEvent.data", "data")}} de l'événement.Il hérite de son parent, {{domxref("EventTarget")}}, et implémente les propriétés de {{domxref("AbstractWorker")}}.
ServiceWorker ne supportent pas cette méthode.messagemessageerrorrejectionhandledonrejectionhandled.unhandledrejectiononunhandledrejection.L'extrait de code suivant montre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur {{domxref("Worker.Worker", "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écification | Statuts | Commentaire |
|---|---|---|
| {{SpecName('HTML WHATWG', "#worker", "Worker")}} | {{Spec2('HTML WHATWG')}} |
Voici le support des différents type de worker. Voir les pages de chaque worker pour avoir les particularités.
{{Compat("api.Worker")}}
Dans les premières versions des spécifications, charger un scripte worker en cross-origin lève une exception SecurityError. Désormais, à la place un évènement {{event("error")}} lancé. Pour en savoir plus, voir (en) Loading cross-origin worker now fires error event instead of throwing; worker in sandboxed iframe no longer allowed.