Worker()

Le constructeur Worker() crée un objet Worker qui exécute le script à l'URL spécifiée. Ce script doit obéir à la same-origin policy.

Remarque : il y a un désaccord entre les éditeurs de navigateur sur la question de savoir si une donnée URI relève ou non de la même origine. Bien que Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) et suivant accepte les données URIs, ce n'est pas le cas dans tous les autres navigateurs.

Syntaxe

var myWorker = new Worker(aURL, options);

Arguments

aURL
Est un DOMString représentant l'URL du script que le worker va exécuter. Il doit obéir à la same-origin policy.
options Facultatif

Un objet contenant des propriétés pour définir les options. Les propriétés suivantes sont valables:

  • type: Une DOMString définissant le type de worker à créer. The valeur peuvent être classic ou module. Si cette prpriété n'est pas définie, la valeur sera classic.
  • credentials: Une DOMString définissant le type de politique d'origine à utiliser pour le worker. Les valeurs peuvent être omit, same-origin ou include. Si cette propriété n'est pas définie, ou que type est défini à classic, la valeur sera classic.
  • name: Une DOMString définissant un identifiant pour l'environment du worker DedicatedWorkerGlobalScope, souvent utilisé pour le débogage.       

Exceptions

  • SecurityError est levé si le document n'est pas autorisé à démarer des workers; par exemple si l'URL à une syntaxe invalide ou que la politique d'origine n'est pas respectée.
  • NetworkError est levé si le type MIME du script du worker est incorect. Il doit toujours être défini à text/javascript.
  • SyntaxError est levé si l'URL ne peut pas être analysée.

Exemple

L'extrait de code suivant illustre la création d'un objet Worker en utilisant le constructeur Worker() et l'usage qui peut alors en être fait :

var myWorker = new Worker("worker.js");

first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message envoyé au worker');
}

Pour un exemple complet, consultez notre Exemple basique d'un worker dédié (lancer le worker dédié).

Spécifications

Spécification Statut Commentaire
HTML Living Standard
La définition de 'Worker()' dans cette spécification.
Standard évolutif

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
Worker() constructorChrome Support complet 4Edge Support complet OuiFirefox Support complet 3.5IE Support complet 10Opera Support complet 10.6Safari Support complet 4WebView Android Support complet 4Chrome Android Support complet 18Firefox Android Support complet 4Opera Android Support complet 11Safari iOS Support complet 5.1Samsung Internet Android Support complet 1.0
Strict MIME type checks for worker scriptsChrome ? Edge Aucun support NonFirefox Support complet 70IE Aucun support NonOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support NonOpera Android ? Safari iOS ? Samsung Internet Android ?
Constructor name optionChrome Support complet 70Edge Support complet 18Firefox Support complet 55IE Aucun support NonOpera Support complet 57Safari Aucun support Non
Notes
Aucun support Non
Notes
Notes Supported in Safari Technology Preview 64
WebView Android Aucun support NonChrome Android Support complet 70Firefox Android Support complet 55Opera Android Support complet 49Safari iOS Aucun support Non
Notes
Aucun support Non
Notes
Notes Supported in Safari Technology Preview 64
Samsung Internet Android Support complet 10.0

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Remarque: Un navigateur peut indiquer avoir un support complet de Worker() même s'il ne supporte pas les fichiers worker écrit comme des modules. À partir du premier août 2019, aucun navigateur n'est connu pour avoir un support en production des fichiers worker écrit comme des modules. Sans ces suppports, les fichiers workers écrit sous forme de module et les modules utilisés dans les workers doivent être transpilés ou convertis en non-module pour être utilisables.

Voir aussi

L'interface Worker auquel il appartient.