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.

**Note :** Il y a désaccord entre les éditeurs de navigateur pour savoir si une URL de données partage la même origine. Bien que Gecko 10.0 et les versions supérieures acceptent des URL de données, ce n'est pas le cas de tous les autres navigateurs.

Syntaxe
-------


```js
new SharedWorker(uneURL);
new SharedWorker(uneURL, nom);
new SharedWorker(uneURL, options);
```

### Paramètres

`uneURL`

Une chaîne de caractères représentant l'URL du script que le *worker* exécutera. Cette URL doit respecter la politique de même origine.

`name` Facultatif

Une chaîne de caractères indiquant un nom permettant d'identifier l'objet `SharedWorkerGlobalScope` (en-US) qui représente la portée du *worker*. Elle est principalement utile à des fins de débogage.

`options` Facultatif

Un objet contenant des propriétés d'options qui peuvent être définies lors de la création de l'instance. Les propriétés utilisables sont :

`type`

Une chaîne de caractères indiquant le type de *worker* à créer. La valeur peut être `classic` ou `module`. Si aucune valeur n'est fournie, c'est la valeur `classic` qui est utilisée par défaut.

`credentials`

 Une chaîne de caractères indiquant le type d'informations d'authentification à utiliser pour le *worker*. La valeur peut être `omit`,
 `same-origin`, ou `include`. Si aucune valeur n'est indiquée ou si le type vaut `classic`, la valeur par défaut utilisée est `omit` (aucune information d'authentification n'est nécessaire).


`name`

Une chaîne de caractères indiquant un nom permettant d'identifier l'objet `SharedWorkerGlobalScope` (en-US) qui représente la portée du *worker*. Elle est principalement utile à des fins de débogage.


### Exceptions

`SecurityError` `DOMException`

Déclenchée si le document n'est pas autorisé à démarrer des *workers*, par exemple si la syntaxe de l'URL est invalide ou si cette dernière ne respecte pas la règle de même origine.

`NetworkError` `DOMException`

Déclenchée si le type MIME du script du *worker* est incorrect. Ce devrait *toujours* être `text/javascript` (pour des raisons historiques, d'autres types MIME JavaScript peuvent être acceptés).

`SyntaxError` `DOMException`

Déclenchée si `uneURL` ne peut pas être analysée.

Exemples
--------

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


```js
const monWorker = new SharedWorker("worker.js");

monWorker.port.start();

premier.onchange = function () {
  monWorker.port.postMessage([premier.value, second.value]);
  console.log("Message envoyé depuis le worker");
};

second.onchange = function () {
  monWorker.port.postMessage([premier.value, second.value]);
  console.log("Message envoyé depuis le worker");
};

monWorker.port.onmessage = function (e) {
  result1.textContent = e.data;
  console.log("Message reçu du worker");
};
```


Pour un exemple complet, voir un exemple simple de *worker* partagé (exécuter le *worker* correspondant).

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-sharedworker-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* L'interface `SharedWorker` à laquelle ce constructeur appartient.