SharedWorker()

Le constructeur SharedWorker() crée un objet SharedWorker qui exécute le script depuis l'URL indiquée. Le script doit respecter la politique de même origine.

Remarque: Il y a désaccord entre les fabricants de navigateur pour savoir si l'URI doit avoir la même origine ou non. Bien que Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7) et les version supérieurs acceptent des origines différentes, ce n'est pas le cas des autres navigateurs.

Syntaxe

var monWorker = new SharedWorker(uneURL, nom);
var monWorker = new SharedWorker(uneURL, options);

Paramètre

uneURL
Une DOMString qui représente l'URL du scripte du worker qui sera exécuté. Il doit obéir à la politique de même origine.
nom Facultatif
Une DOMString indiquant un nom pour le SharedWorkerGlobalScope représentant la portée du worker. Souvent utilisé pour le débogage.
options Facultatif
Une objet contenant les propriétés qui peuvent être défini à la création. Les propriété possibles sont:
  • type: Une DOMString spécifiant le type de worker à créer. Les valeurs possibles sont: classic ou module. Si non spécifié, la valeur par défaut est classic.
  • credentials: Une DOMString spécifiant le type de crédit à utilisé pour le worker. La valeur peut être omit, same-origin ou include. Si non spécifié ou si le type est classic, la valeur par défaut sera omit (pas de crédit nécéssaire).
  • name: Une DOMString spécifiant un identifiant pour le SharedWorkerGlobalScope représentant la porté du worker, souvent utilisé pour déboguer.

Valeur retournée

Le woker créé.

Exceptions

  • Une SecurityError est levé si le document n'est pas autorisé à lancer le worker. Par exemple si l'URL a une syntaxe invalide ou si la politique de même origine est violée.
  • Une NetworkError est levé si le type MIME du script worker n'est pas correct. Le type MIME doit toujours être text/javascript.
  • Une SyntaxError est levée si uneURL ne peut pas être analysée.

Exemple

L'extrait de code suivant montre la création d'un objet SharedWorker en utilisant le contructeur SharedWorker() et l'usage qui en est fait.

var myWorker = new SharedWorker('worker.js');

myWorker.port.start();

first.onchange = function() {
  myWorker.port.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

second.onchange = function() {
  myWorker.port.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

myWorker.port.onmessage = function(e) {
  result1.textContent = e.data;
  console.log('Message received from worker');
}

Pour l'exemple en complet, voir Basic shared worker example (run shared worker.)

Spécifications

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

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi