diff options
| author | julieng <julien.gattelier@gmail.com> | 2021-10-02 17:20:24 +0200 |
|---|---|---|
| committer | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-10-02 17:30:20 +0200 |
| commit | 1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde (patch) | |
| tree | 30a56efd3eff3a01bd1611e1840fdbbfacf544a4 /files/fr/web/api/worker | |
| parent | c05efa8d7ae464235cf83d7c0956e42dc6974103 (diff) | |
| download | translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.gz translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.tar.bz2 translated-content-1407c8fdef01ecd0ffb8a8bd46e7113f119b9fde.zip | |
convert content to md
Diffstat (limited to 'files/fr/web/api/worker')
| -rw-r--r-- | files/fr/web/api/worker/index.md | 140 | ||||
| -rw-r--r-- | files/fr/web/api/worker/onmessage/index.md | 66 | ||||
| -rw-r--r-- | files/fr/web/api/worker/postmessage/index.md | 109 | ||||
| -rw-r--r-- | files/fr/web/api/worker/terminate/index.md | 58 | ||||
| -rw-r--r-- | files/fr/web/api/worker/worker/index.md | 90 |
5 files changed, 193 insertions, 270 deletions
diff --git a/files/fr/web/api/worker/index.md b/files/fr/web/api/worker/index.md index a77f47cf51..6bed548f09 100644 --- a/files/fr/web/api/worker/index.md +++ b/files/fr/web/api/worker/index.md @@ -11,122 +11,96 @@ tags: - Workers translation_of: Web/API/Worker --- -<p>{{APIRef("Web Workers API")}}</p> +{{APIRef("Web Workers API")}} -<p>L'interface <strong>Worker</strong> de l'<a href="/fr/docs/Web/API/Web_Workers_API">API Web Workers</a> 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 <code>Worker()</code>, en spécifiant un script qui définira le comportement du thread du worker.</p> +L'interface **Worker** de l'[API Web Workers](/fr/docs/Web/API/Web_Workers_API) 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. -<p>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: <a href="https://bugs.webkit.org/show_bug.cgi?id=22723">Les workers imbriqués ne sont pas encore implémentés dans WebKit</a>).</p> +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](https://bugs.webkit.org/show_bug.cgi?id=22723)). -<p>De plus les workers peuvent utiliser <a href="/en/DOM/XMLHttpRequest"><code>XMLHttpRequest</code></a> pour les communiquer avec le réseau, à l'exception des attributs <code>responseXML</code> et <code>channel</code> qui vont toujours retourner <code>null</code>.</p> +De plus les workers peuvent utiliser [`XMLHttpRequest`](/en/DOM/XMLHttpRequest) pour les communiquer avec le réseau, à l'exception des attributs `responseXML` et `channel` qui vont toujours retourner `null`. -<p>Toutes les<a href="/fr/DOM/Worker/Functions_available_to_workers"> interfaces et toutes les fonctions</a> ne seront pas disponibles pour le script associé au worker.</p> +Toutes les[ interfaces et toutes les fonctions](/fr/DOM/Worker/Functions_available_to_workers) ne seront pas disponibles pour le script associé au worker. -<div class="note"> -<p><strong>Note :</strong> Dans Firefox, si vous souhaitez utiliser les workers dans une extension et que vous souhaitez avoir accès au <a href="/en/js-ctypes">js-ctypes</a>, vous devez utiliser le {{ domxref("ChromeWorker") }} à la place.</p> -</div> +> **Note :** Dans Firefox, si vous souhaitez utiliser les workers dans une extension et que vous souhaitez avoir accès au [js-ctypes](/en/js-ctypes), vous devez utiliser le {{ domxref("ChromeWorker") }} à la place. -<h2 id="Constructeurs">Constructeurs</h2> +## Constructeurs -<dl> - <dt>{{domxref("Worker.Worker", "Worker()")}}</dt> - <dd>Créer un web worker dédié qui execute le script qui est au bout de l'URL spécifié. Les workers peuvent aussi être créés en utilisant les <a href="/fr/docs/Web/API/Blob">Blobs</a>.</dd> -</dl> +- {{domxref("Worker.Worker", "Worker()")}} + - : Créer un web worker dédié qui execute le script qui est au bout de l'URL spécifié. Les workers peuvent aussi être créés en utilisant les [Blobs](/fr/docs/Web/API/Blob). -<h2 id="Propriétés">Propriétés</h2> +## Propriétés -<p><em>Il hérite de propriétés de son parent, {{domxref("EventTarget")}}, et implémente les propriétés de {{domxref("AbstractWorker")}}.</em></p> +_Il hérite de propriétés de son parent, {{domxref("EventTarget")}}, et implémente les propriétés de {{domxref("AbstractWorker")}}._ -<h3 id="Gestionnaires_dévénements">Gestionnaires d'événements</h3> +### Gestionnaires d'événements -<dl> - <dt>{{domxref("AbstractWorker.onerror")}}</dt> - <dd>Un {{ domxref("EventListener") }} qui est appelé quand un {{domxref("ErrorEvent")}} de type <code>error</code> arrive dans le worker. Il est hérité de {{domxref("AbstractWorker")}}.</dd> - <dt>{{domxref("Worker.onmessage")}}</dt> - <dd>Un {{ domxref("EventListener") }} qui est appelé quand un {{domxref("MessageEvent")}} de type <code>message</code> 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.</dd> - <dt>{{domxref("Worker.onmessageerror")}}</dt> - <dd>Un {{event("Event_handlers", "event handler")}} qui indique le code à appeler quand un message {{event("messageerror")}} arrive.</dd> -</dl> +- {{domxref("AbstractWorker.onerror")}} + - : Un {{ domxref("EventListener") }} qui est appelé quand un {{domxref("ErrorEvent")}} de type `error` arrive dans le worker. Il est hérité de {{domxref("AbstractWorker")}}. +- {{domxref("Worker.onmessage")}} + - : Un {{ domxref("EventListener") }} qui est appelé quand un {{domxref("MessageEvent")}} de type `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. +- {{domxref("Worker.onmessageerror")}} + - : Un {{event("Event_handlers", "event handler")}} qui indique le code à appeler quand un message {{event("messageerror")}} arrive. -<dl> -</dl> +<!----> -<h2 id="Méthodes">Méthodes</h2> +## Méthodes -<p><em>Il hérite de son parent, </em> <em>{{domxref("EventTarget")}},</em> et implémente les propriétés de <em>{{domxref("AbstractWorker")}}.</em></p> +_Il hérite de son parent,_ _{{domxref("EventTarget")}},_ et implémente les propriétés de _{{domxref("AbstractWorker")}}._ -<dl> - <dt>{{domxref("Worker.postMessage()")}}</dt> - <dd>Envoie un message, qui est n'importe quel objets JavaScript vers la clôture du worker.</dd> - <dt>{{domxref("Worker.terminate()")}}</dt> - <dd>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 <code><a href="/fr/docs/Web/API/ServiceWorker">ServiceWorker</a></code> ne supportent pas cette méthode.</dd> -</dl> +- {{domxref("Worker.postMessage()")}} + - : Envoie un message, qui est n'importe quel objets JavaScript vers la clôture du worker. +- {{domxref("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`](/fr/docs/Web/API/ServiceWorker) ne supportent pas cette méthode. -<h2 id="Évènements">Évènements</h2> +## Évènements -<dl> - <dt><code><a href="/fr/docs/Web/API/Worker/message_event">message</a></code></dt> - <dd>Lorsque le worker parent reçoit un message venant du worker. On peut aussi y accéder via la propriété {{domxref("Worker.onmessage")}}.</dd> - <dt><code><a href="/fr/docs/Web/API/Worker/messageerror_event">messageerror</a></code></dt> - <dd>Lorsque le worker reçois un message qu'il ne peut <a href="/fr/docs/Web/API/Web_Workers_API/Structured_clone_algorithm">désérialiser</a>. Aussi disponible à travers la propriété {{domxref("Worker.onmessageerror")}}.</dd> -</dl> +- [`message`](/fr/docs/Web/API/Worker/message_event) + - : Lorsque le worker parent reçoit un message venant du worker. On peut aussi y accéder via la propriété {{domxref("Worker.onmessage")}}. +- [`messageerror`](/fr/docs/Web/API/Worker/messageerror_event) + - : Lorsque le worker reçois un message qu'il ne peut [désérialiser](/fr/docs/Web/API/Web_Workers_API/Structured_clone_algorithm). Aussi disponible à travers la propriété {{domxref("Worker.onmessageerror")}}. -<dl> - <dt><code><a href="/fr/docs/Web/API/Window/rejectionhandled_event">rejectionhandled</a></code></dt> - <dd>Levé à chaque fois qu'une {{jsxref("Promise")}} est rejeté, avec ou sans gestionnaire pour intercepter l'exception. Aussi disponible à travers le gestionnaire <code><a href="/fr/docs/Web/API/WindowEventHandlers/onrejectionhandled">onrejectionhandled</a></code>.</dd> - <dt><code><a href="/fr/docs/Web/API/Window/unhandledrejection_event">unhandledrejection</a></code></dt> - <dd>Levé quand une {{jsxref("Promise")}} est rejetée sans gestionnaire pour récupérer l'exception. Aussi disponible à travers la propriété <code><a href="/fr/docs/Web/API/WindowEventHandlers/onunhandledrejection">onunhandledrejection</a></code>.</dd> -</dl> +<!----> -<h2 id="Exemple">Exemple</h2> +- [`rejectionhandled`](/fr/docs/Web/API/Window/rejectionhandled_event) + - : Levé à chaque fois qu'une {{jsxref("Promise")}} est rejeté, avec ou sans gestionnaire pour intercepter l'exception. Aussi disponible à travers le gestionnaire [`onrejectionhandled`](/fr/docs/Web/API/WindowEventHandlers/onrejectionhandled). +- [`unhandledrejection`](/fr/docs/Web/API/Window/unhandledrejection_event) + - : Levé quand une {{jsxref("Promise")}} est rejetée sans gestionnaire pour récupérer l'exception. Aussi disponible à travers la propriété [`onunhandledrejection`](/fr/docs/Web/API/WindowEventHandlers/onunhandledrejection). -<p>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:</p> +## Exemple -<pre class="brush: js">var monWorker = new Worker("worker.js"); +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: + +```js +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'); -}</pre> - -<p>Pour un exemple complet, voir <a href="https://github.com/mdn/simple-web-worker">Exemple basique de worker dédié</a> (<a href="http://mdn.github.io/simple-web-worker/">exécuter le worker dédié</a>).</p> - -<h2 id="Spécifications">Spécifications</h2> +} +``` -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statuts</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('HTML WHATWG', "#worker", "Worker")}}</td> - <td>{{Spec2('HTML WHATWG')}}</td> - <td></td> - </tr> - </tbody> -</table> +Pour un exemple complet, voir [Exemple basique de worker dédié](https://github.com/mdn/simple-web-worker) ([exécuter le worker dédié](http://mdn.github.io/simple-web-worker/)). -<h2 id="Compatibilité_avec_les_navigateurs">Compatibilité avec les navigateurs</h2> +## Spécifications -<div> -<p>Voici le support des différents type de worker. Voir les pages de chaque worker pour avoir les particularités.</p> +| Spécification | Statuts | Commentaire | +| ---------------------------------------------------------------- | -------------------------------- | ----------- | +| {{SpecName('HTML WHATWG', "#worker", "Worker")}} | {{Spec2('HTML WHATWG')}} | | +## Compatibilité avec les navigateurs +Voici le support des différents type de worker. Voir les pages de chaque worker pour avoir les particularités. -<p>{{Compat("api.Worker")}}</p> +{{Compat("api.Worker")}} -<h3 id="Comportement_des_erreur_Cross-origin_sur_les_worker">Comportement des erreur Cross-origin sur les worker</h3> +### Comportement des erreur Cross-origin sur les worker -<p>Dans les premières versions des spécifications, charger un scripte worker en cross-origin lève une exception <code>SecurityError</code>. Désormais, à la place un évènement {{event("error")}} lancé.</p> -</div> +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é. -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<ul> - <li><a href="/fr/docs/Web/API/Web_Workers_API/Utilisation_des_web_workers">Utiliser les web Worker</a></li> - <li><a href="/fr/docs/Web/API/Worker/Functions_and_classes_available_to_workers">Fonctions et classes disponibles dans les Web Workers</a></li> - <li>D'autres type de workers: {{ domxref("SharedWorker") }}, et <a href="/fr/docs/Web/API/ServiceWorker_API">ServiceWorker</a>.</li> - <li>Worker non-standard, spécifique à Gecko: {{ domxref("ChromeWorker") }}, utilisé par les extensions.</li> -</ul> +- [Utiliser les web Worker](/fr/docs/Web/API/Web_Workers_API/Utilisation_des_web_workers) +- [Fonctions et classes disponibles dans les Web Workers](/fr/docs/Web/API/Worker/Functions_and_classes_available_to_workers) +- D'autres type de workers: {{ domxref("SharedWorker") }}, et [ServiceWorker](/fr/docs/Web/API/ServiceWorker_API). +- Worker non-standard, spécifique à Gecko: {{ domxref("ChromeWorker") }}, utilisé par les extensions. diff --git a/files/fr/web/api/worker/onmessage/index.md b/files/fr/web/api/worker/onmessage/index.md index 802fc4771e..5e3e925e37 100644 --- a/files/fr/web/api/worker/onmessage/index.md +++ b/files/fr/web/api/worker/onmessage/index.md @@ -7,23 +7,24 @@ tags: - Reference translation_of: Web/API/Worker/onmessage --- -<p>{{ APIRef("Web Workers API") }}</p> +{{ APIRef("Web Workers API") }} -<p>La propriété <strong><code>onmessage</code></strong> de l'interface {{domxref("Worker")}} représente un {{event("Event_handlers", "event handler")}}, à savoir une fonction qui est appelée lorsque l'événement {{event("message")}} survient. Ces événements sont du type {{domxref("MessageEvent")}} et sont appelés quand le parent du worker reçoit un message (c’est-à-dire à partir de la méthode {{domxref("DedicatedWorkerGlobalScope.postMessage")}}).</p> +La propriété **`onmessage`** de l'interface {{domxref("Worker")}} représente un {{event("Event_handlers", "event handler")}}, à savoir une fonction qui est appelée lorsque l'événement {{event("message")}} survient. Ces événements sont du type {{domxref("MessageEvent")}} et sont appelés quand le parent du worker reçoit un message (c’est-à-dire à partir de la méthode {{domxref("DedicatedWorkerGlobalScope.postMessage")}}). -<div class="note"> -<p><strong>Note :</strong> Le contenu du message est fourni par la propriété <code>data</code> de l'événement {{event("message")}}.</p> -</div> +> **Note :** Le contenu du message est fourni par la propriété `data` de l'événement {{event("message")}}. -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">myWorker.onmessage = function(e) { ... }</pre> +```js +myWorker.onmessage = function(e) { ... } +``` -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>L'extrait de code suivant illustre la création d'un objet {{domxref("Worker")}} utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}. Les messages sont passés au worker lorsque la valeur de l'élément de formulaire <code>first</code> change. Un gestionnaire onmessage est également présent pour s'occuper des messages retournés par le worker.</p> +L'extrait de code suivant illustre la création d'un objet {{domxref("Worker")}} utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}. Les messages sont passés au worker lorsque la valeur de l'élément de formulaire `first` change. Un gestionnaire onmessage est également présent pour s'occuper des messages retournés par le worker. -<pre class="brush: js">var myWorker = new Worker("worker.js"); +```js +var myWorker = new Worker("worker.js"); first.onchange = function() { myWorker.postMessage([first.value,second.value]); @@ -34,46 +35,33 @@ myWorker.onmessage = function(e) { result.textContent = e.data; console.log('Message reçu du worker'); } -</pre> +``` -<p>Dans le script <code>worker.js</code>, un gestionnaire <code>onmessage</code> se charge des messages en provenance du script principal :</p> +Dans le script `worker.js`, un gestionnaire `onmessage` se charge des messages en provenance du script principal : -<pre class="brush: js">onmessage = function(e) { +```js +onmessage = function(e) { console.log('Message reçu du script principal'); var workerResult = 'Result: ' + (e.data[0] * e.data[1]); console.log('Renvoi d\'un message au script principal'); postMessage(workerResult); -}</pre> - -<p>Remarquez comment dans le script principal, <code>onmessage</code> doit être appelée par <code>myWorker</code>, tandis que dans le script du worker vous avez juste besoin d'appeler <code>onmessage</code> parce que le worker est en réalité le contexte global ({{domxref("DedicatedWorkerGlobalScope")}}).</p> - -<p>Pour un exemple complet, consulter notre <a href="https://github.com/mdn/simple-web-worker">Exemple basique de worker dédié</a> (<a href="http://mdn.github.io/simple-web-worker/">lancez le worker dédié</a>).</p> +} +``` -<h2 id="Spécifications">Spécifications</h2> +Remarquez comment dans le script principal, `onmessage` doit être appelée par `myWorker`, tandis que dans le script du worker vous avez juste besoin d'appeler `onmessage` parce que le worker est en réalité le contexte global ({{domxref("DedicatedWorkerGlobalScope")}}). -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('HTML WHATWG', "#handler-worker-onmessage", "Worker.onmessage")}}</td> - <td>{{Spec2('HTML WHATWG')}}</td> - <td></td> - </tr> - </tbody> -</table> +Pour un exemple complet, consulter notre [Exemple basique de worker dédié](https://github.com/mdn/simple-web-worker) ([lancez le worker dédié](http://mdn.github.io/simple-web-worker/)). -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> +## Spécifications -<div> +| Spécification | Statut | Commentaire | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | ----------- | +| {{SpecName('HTML WHATWG', "#handler-worker-onmessage", "Worker.onmessage")}} | {{Spec2('HTML WHATWG')}} | | +## Compatibilité des navigateurs -<p>{{Compat("api.Worker.onmessage")}}</p> -</div> +{{Compat("api.Worker.onmessage")}} -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<p>L'interface {{domxref("Worker")}} à laquelle elle appartient.</p> +L'interface {{domxref("Worker")}} à laquelle elle appartient. diff --git a/files/fr/web/api/worker/postmessage/index.md b/files/fr/web/api/worker/postmessage/index.md index 76ea9d7e7e..19af80e667 100644 --- a/files/fr/web/api/worker/postmessage/index.md +++ b/files/fr/web/api/worker/postmessage/index.md @@ -3,35 +3,36 @@ title: Worker.postMessage() slug: Web/API/Worker/postMessage translation_of: Web/API/Worker/postMessage --- -<p>{{ apiref("Worker") }}</p> +{{ apiref("Worker") }} -<p>La méthode <code><strong>Worker.postMessage()</strong></code> envoie un message à la portée locale du worker. Cette fonction accepte un seul paramètre, qui est la donnée à envoyer au worker. Cette donnée peut-être de n'importe quelle valeur ou un objet JavaScript pris en charge par l'algorithme de clone structuré, qui inclut les références cycliques.</p> +La méthode **`Worker.postMessage()`** envoie un message à la portée locale du worker. Cette fonction accepte un seul paramètre, qui est la donnée à envoyer au worker. Cette donnée peut-être de n'importe quelle valeur ou un objet JavaScript pris en charge par l'algorithme de clone structuré, qui inclut les références cycliques. -<p>Le Worker peut renvoyer une information au thread qui l'a créé en utilisant la méthode {{domxref("DedicatedWorkerGlobalScope.postMessage")}}.</p> +Le Worker peut renvoyer une information au thread qui l'a créé en utilisant la méthode {{domxref("DedicatedWorkerGlobalScope.postMessage")}}. -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><em>worker.</em>postMessage(<em>aMessage</em>, <em>[transferList</em>]);</pre> + worker.postMessage(aMessage, [transferList]); -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<dl> - <dt><em>aMessage</em></dt> - <dd>L'objet à envoyer au worker; il va être dans le champ de donnée <code>data</code> dans l'évènement délivré au gestonnaire d'évènement {{domxref("Worker.onmessage")}}. Cette donnée peut être de n'importe quelle valeur ou un objet JavaScript pris en charge par l'algorithme de <a href="/fr/docs/Web/API/Web_Workers_API/algorithme_clonage_structure">clone structuré</a>, qui inclut les références cycliques.</dd> - <dt><em>transferList</em> {{optional_inline}}</dt> - <dd><p>Un tableau optionnel d'objets {{domxref("Transferable")}} desquels on doit transférer la propriété. Si la propriété d'un objet est transférée, il devient inutilisable (<em>neutralisé</em>) pour le contexte émétteur et devient disponible uniquement pour le worker auquel cela a été envoyé.</p> - <p>Seulement des objets de types {{domxref("MessagePort")}}, {{domxref("ArrayBuffer")}} ou {{domxref("ImageBitmap")}} peuvent être transférés. <code>null</code> n'est pas une valeur accéptée pour <code>transfer</code>.</p></dd> -</dl> +- _aMessage_ + - : L'objet à envoyer au worker; il va être dans le champ de donnée `data` dans l'évènement délivré au gestonnaire d'évènement {{domxref("Worker.onmessage")}}. Cette donnée peut être de n'importe quelle valeur ou un objet JavaScript pris en charge par l'algorithme de [clone structuré](/fr/docs/Web/API/Web_Workers_API/algorithme_clonage_structure), qui inclut les références cycliques. +- _transferList_ {{optional_inline}} -<h3 id="Retour">Retour</h3> + - : Un tableau optionnel d'objets {{domxref("Transferable")}} desquels on doit transférer la propriété. Si la propriété d'un objet est transférée, il devient inutilisable (_neutralisé_) pour le contexte émétteur et devient disponible uniquement pour le worker auquel cela a été envoyé. -<p>Vide.</p> + Seulement des objets de types {{domxref("MessagePort")}}, {{domxref("ArrayBuffer")}} ou {{domxref("ImageBitmap")}} peuvent être transférés. `null` n'est pas une valeur accéptée pour `transfer`. -<h2 id="Exemple">Exemple</h2> +### Retour -<p>L'extrait de code suivant montre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}. Quand les deux champs de formulaire (<code>fisrt</code> et <code>second</code>) ont été changés, les évènements {{event("change")}} invoquent <code>postMessage()</code> pour envoyer la valeur des deux entrées au <em>worker</em> courant.</p> +Vide. -<pre class="brush: js">var myWorker = new Worker('worker.js'); +## Exemple + +L'extrait de code suivant montre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}. Quand les deux champs de formulaire (`fisrt` et `second`) ont été changés, les évènements {{event("change")}} invoquent `postMessage()` pour envoyer la valeur des deux entrées au _worker_ courant. + +```js +var myWorker = new Worker('worker.js'); first.onchange = function() { myWorker.postMessage([first.value,second.value]); @@ -41,21 +42,21 @@ first.onchange = function() { second.onchange = function() { myWorker.postMessage([first.value,second.value]); console.log('Message posted to worker'); -}</pre> +} +``` -<p>Pour l'exemple en entier, voir <a href="https://github.com/mdn/simple-web-worker">Basic dedicated worder example</a> (<a href="http://mdn.github.io/simple-web-worker/">démonstration</a>).</p> +Pour l'exemple en entier, voir [Basic dedicated worder example](https://github.com/mdn/simple-web-worker) ([démonstration](http://mdn.github.io/simple-web-worker/)). -<div class="note"> -<p><strong>Note :</strong> <code>postMessage()</code> peut n'envoyer qu'un objet à la fois. Comme ci-dessus, si vous voulez envoyez plusieurs valeurs, vous pouvez utiliser un tableau.</p> -</div> +> **Note :** `postMessage()` peut n'envoyer qu'un objet à la fois. Comme ci-dessus, si vous voulez envoyez plusieurs valeurs, vous pouvez utiliser un tableau. -<h3 id="Exemple_de_transfert">Exemple de transfert</h3> +### Exemple de transfert -<p>Cette exemple montre une extension pour Firefox qui transfert un <code>ArrarBuffer</code> depuis le <em>thread</em> principal vers le <code>ChromeWorker</code>, et le <code>ChromeWorker</code> répond au le thread principal.</p> +Cette exemple montre une extension pour Firefox qui transfert un `ArrarBuffer` depuis le _thread_ principal vers le `ChromeWorker`, et le `ChromeWorker` répond au le thread principal. -<h4 id="Main_thread_code">Main thread code:</h4> +#### Main thread code: -<pre class="brush: js">var myWorker = new ChromeWorker(self.path + 'myWorker.js'); +```js +var myWorker = new ChromeWorker(self.path + 'myWorker.js'); function handleMessageFromWorker(msg) { console.log('incoming message from worker, msg:', msg); @@ -84,11 +85,13 @@ myWorker.postMessage( ] ); -console.info('arrBuf.byteLength post transfer:', arrBuf.byteLength);</pre> +console.info('arrBuf.byteLength post transfer:', arrBuf.byteLength); +``` -<h4 id="Worker_code">Worker code</h4> +#### Worker code -<pre class="brush: js">self.onmessage = function (msg) { +```js +self.onmessage = function (msg) { switch (msg.data.aTopic) { case 'do_sendWorkerArrBuff': sendWorkerArrBuff(msg.data.aBuf) @@ -104,11 +107,13 @@ function sendWorkerArrBuff(aBuf) { self.postMessage({aTopic:'do_sendMainArrBuff', aBuf:aBuf}, [aBuf]); console.info('from worker, POST send back aBuf.byteLength:', aBuf.byteLength); -}</pre> +} +``` -<h4 id="Output_logged">Output logged</h4> +#### Output logged -<pre class="brush: html">arrBuf.byteLength pre transfer: 8 bootstrap.js:40 +```html +arrBuf.byteLength pre transfer: 8 bootstrap.js:40 arrBuf.byteLength post transfer: 0 bootstrap.js:42 from worker, PRE send back aBuf.byteLength: 8 myWorker.js:5:2 @@ -116,37 +121,23 @@ from worker, PRE send back aBuf.byteLength: 8 myWorker.js:5:2 incoming message from worker, msg: message { ... } bootstrap.js:20 got back buf in main thread, aBuf.byteLength: 8 bootstrap.js:12 -from worker, POST send back aBuf.byteLength: 0 myWorker.js:7:2</pre> - -<p><code>byteLength</code> passe à 0 quand il est transferré. Pour voir l'exemple de cette extension de démonstration de Firefox, voir <a href="https://github.com/Noitidart/ChromeWorker/tree/aca57d9cadc4e68af16201bdecbfb6f9a6f9ca6b">GitHub :: ChromeWorker - demo-transfer-arraybuffer</a></p> +from worker, POST send back aBuf.byteLength: 0 myWorker.js:7:2 +``` -<h2 id="Spécifications">Spécifications</h2> +`byteLength` passe à 0 quand il est transferré. Pour voir l'exemple de cette extension de démonstration de Firefox, voir [GitHub :: ChromeWorker - demo-transfer-arraybuffer](https://github.com/Noitidart/ChromeWorker/tree/aca57d9cadc4e68af16201bdecbfb6f9a6f9ca6b) -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('HTML WHATWG', "#dom-worker-postmessage", "Worker.postMessage()")}}</td> - <td>{{Spec2('HTML WHATWG')}}</td> - <td></td> - </tr> - </tbody> -</table> +## Spécifications -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> +| Spécification | Statut | Commentaire | +| -------------------------------------------------------------------------------------------------------- | -------------------------------- | ----------- | +| {{SpecName('HTML WHATWG', "#dom-worker-postmessage", "Worker.postMessage()")}} | {{Spec2('HTML WHATWG')}} | | -<div> +## Compatibilité des navigateurs +{{Compat("api.Worker.postMessage")}} -<p>{{Compat("api.Worker.postMessage")}}</p> -[1] Internet Explorer ne supporte pas les objets {{domxref("Transferable")}}.</div> +\[1] Internet Explorer ne supporte pas les objets {{domxref("Transferable")}}. -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<ul> - <li>L'interface {{domxref("Worker")}} auquel il appartient.</li> -</ul> +- L'interface {{domxref("Worker")}} auquel il appartient. diff --git a/files/fr/web/api/worker/terminate/index.md b/files/fr/web/api/worker/terminate/index.md index 6565192498..92f8b0d8b1 100644 --- a/files/fr/web/api/worker/terminate/index.md +++ b/files/fr/web/api/worker/terminate/index.md @@ -3,56 +3,44 @@ title: Worker.terminate() slug: Web/API/Worker/terminate translation_of: Web/API/Worker/terminate --- -<p>{{ apiref("Worker") }}</p> +{{ apiref("Worker") }} -<p>La méthode <code> <strong>terminate()</strong></code> de l'interface {{domxref("Worker")}} termine immédiatement le {{domxref("Worker")}}. Cette interruption ne permet pas au worker de finaliser ses opérations, il est juste arrêté sur le champ.</p> +La méthode **`terminate()`** de l'interface {{domxref("Worker")}} termine immédiatement le {{domxref("Worker")}}. Cette interruption ne permet pas au worker de finaliser ses opérations, il est juste arrêté sur le champ. -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">myWorker.terminate();</pre> +```js +myWorker.terminate(); +``` -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<p>Aucun.</p> +Aucun. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>Néant.</p> +Néant. -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>L'extrait de code suivant montre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}, qui est alors immédiatement interrompu.</p> +L'extrait de code suivant montre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur {{domxref("Worker.Worker", "Worker()")}}, qui est alors immédiatement interrompu. -<pre class="brush: js">var myWorker = new Worker("worker.js"); +```js +var myWorker = new Worker("worker.js"); myWorker.terminate(); -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('HTML WHATWG', "#dom-worker-terminate", "Worker.terminate()")}}</td> - <td>{{Spec2('HTML WHATWG')}}</td> - <td></td> - </tr> - </tbody> -</table> +``` -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> +## Spécifications -<div> +| Spécification | Statut | Commentaire | +| ---------------------------------------------------------------------------------------------------- | -------------------------------- | ----------- | +| {{SpecName('HTML WHATWG', "#dom-worker-terminate", "Worker.terminate()")}} | {{Spec2('HTML WHATWG')}} | | +## Compatibilité des navigateurs -<p>{{Compat("api.Worker.terminate")}}</p> -</div> +{{Compat("api.Worker.terminate")}} -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<p>L'interface {{domxref("Worker")}} à laquelle elle appartient.</p> +L'interface {{domxref("Worker")}} à laquelle elle appartient. diff --git a/files/fr/web/api/worker/worker/index.md b/files/fr/web/api/worker/worker/index.md index 1448f5eb35..bfe2236974 100644 --- a/files/fr/web/api/worker/worker/index.md +++ b/files/fr/web/api/worker/worker/index.md @@ -6,81 +6,63 @@ tags: - Reference translation_of: Web/API/Worker/Worker --- -<p>{{APIRef("Worker")}}</p> +{{APIRef("Worker")}} -<p>Le constructeur <code><strong>Worker()</strong></code> crée un objet {{domxref("Worker")}} qui exécute le script à l'URL spécifiée. Ce script doit obéir à la <a href="/en/Same_origin_policy_for_JavaScript">same-origin policy</a>.</p> +Le constructeur **`Worker()`** crée un objet {{domxref("Worker")}} qui exécute le script à l'URL spécifiée. Ce script doit obéir à la [same-origin policy](/en/Same_origin_policy_for_JavaScript). -<div class="note"> -<p><strong>Note :</strong> 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 {{ geckoRelease("10.0") }} et suivant accepte les données URIs, ce n'est pas le cas dans tous les autres navigateurs.</p> -</div> +> **Note :** 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 {{ geckoRelease("10.0") }} et suivant accepte les données URIs, ce n'est pas le cas dans tous les autres navigateurs. -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="brush: js">var myWorker = new Worker(aURL, options);</pre> +```js +var myWorker = new Worker(aURL, options); +``` -<h3 id="Arguments">Arguments</h3> +### Arguments -<dl> - <dt><em>aURL</em></dt> - <dd>Est un {{domxref("DOMString")}} représentant l'URL du script que le worker va exécuter. Il doit obéir à la same-origin policy.</dd> - <dt>options {{optional_inline}}</dt> - <dd> - <p>Un objet contenant des propriétés pour définir les options. Les propriétés suivantes sont valables:</p> +- _aURL_ + - : Est un {{domxref("DOMString")}} représentant l'URL du script que le worker va exécuter. Il doit obéir à la same-origin policy. +- options {{optional_inline}} - <ul> - <li><code>type</code>: Une {{domxref("DOMString")}} définissant le type de worker à créer. The valeur peuvent être <code>classic</code> ou <code>module</code>. Si cette prpriété n'est pas définie, la valeur sera <code>classic</code>.</li> - <li><code>credentials</code>: Une {{domxref("DOMString")}} définissant le type de politique d'origine à utiliser pour le <em>worker</em>. Les valeurs peuvent être <dfn><code>omit</code></dfn>, <code><dfn>same-origin</dfn></code> ou <dfn><code>include</code>. </dfn>Si cette propriété n'est pas définie, ou que type est défini à <code>classic</code>, la valeur sera <code>classic</code>.</li> - <li><code>name</code>: Une {{domxref("DOMString")}} définissant un identifiant pour l'environment du worker {{domxref("DedicatedWorkerGlobalScope")}}, souvent utilisé pour le débogage.</li> - </ul> - </dd> -</dl> + - : Un objet contenant des propriétés pour définir les options. Les propriétés suivantes sont valables: -<h3 id="Exceptions">Exceptions</h3> + - `type`: Une {{domxref("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 {{domxref("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 {{domxref("DOMString")}} définissant un identifiant pour l'environment du worker {{domxref("DedicatedWorkerGlobalScope")}}, souvent utilisé pour le débogage. -<ul> - <li><code>SecurityError</code> est levé si le document n'est pas autorisé à démarer des <em>workers</em>; par exemple si l'URL à une syntaxe invalide ou que la politique d'origine n'est pas respectée.</li> - <li><code>NetworkError</code> est levé si le type MIME du script du worker est incorect. Il doit toujours être défini à <code>text/javascript</code>.</li> - <li><code>SyntaxError</code> est levé si l'URL ne peut pas être analysée.</li> -</ul> +### Exceptions -<h2 id="Exemple">Exemple</h2> +- `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. -<p>L'extrait de code suivant illustre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur <code>Worker()</code> et l'usage qui peut alors en être fait :</p> +## Exemple -<pre class="brush: js">var myWorker = new Worker("worker.js"); +L'extrait de code suivant illustre la création d'un objet {{domxref("Worker")}} en utilisant le constructeur `Worker()` et l'usage qui peut alors en être fait : + +```js +var myWorker = new Worker("worker.js"); first.onchange = function() { myWorker.postMessage([first.value,second.value]); console.log('Message envoyé au worker'); -}</pre> +} +``` -<p>Pour un exemple complet, consultez notre <a href="https://github.com/mdn/simple-web-worker">Exemple basique d'un worker dédié </a>(<a href="http://mdn.github.io/simple-web-worker/">lancer le worker dédié</a>).</p> +Pour un exemple complet, consultez notre [Exemple basique d'un worker dédié ](https://github.com/mdn/simple-web-worker)([lancer le worker dédié](http://mdn.github.io/simple-web-worker/)). -<h2 id="Spécifications">Spécifications</h2> +## Spécifications -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Statut</th> - <th scope="col">Commentaire</th> - </tr> - <tr> - <td>{{SpecName('HTML WHATWG', "#dom-worker", "Worker()")}}</td> - <td>{{Spec2('HTML WHATWG')}}</td> - <td></td> - </tr> - </tbody> -</table> +| Spécification | Statut | Commentaire | +| ------------------------------------------------------------------------ | -------------------------------- | ----------- | +| {{SpecName('HTML WHATWG', "#dom-worker", "Worker()")}} | {{Spec2('HTML WHATWG')}} | | -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> +## Compatibilité des navigateurs -<p>{{Compat("api.Worker.Worker")}}</p> +{{Compat("api.Worker.Worker")}} -<div class="blockIndicator note"> -<p><strong>Note :</strong> Un navigateur peut indiquer avoir un support complet de <code>Worker()</code> 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 <em>worker</em> écrit comme des modules. Sans ces suppports, les fichiers <em>workers</em> é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.</p> -</div> +> **Note :** 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. -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<p>L'interface {{domxref("Worker")}} auquel il appartient.</p> +L'interface {{domxref("Worker")}} auquel il appartient. |
