[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/API/Web_Workers_API [Back]  [Original]

API Web Workers - Les API Web | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

API Web Workers

Les Web Workers sont un mcanisme grce auquel les instructions d'un script peuvent tre excuts dans un thread en arrire-plan spar du thread d'excution principal d'une application web. Cela a pour avantage qu'un traitement laborieux peut tre ralis dans un thread spar, permettant au thread principal (gnralement l'interface utilisateur) de fonctionner sans blocage ni ralentissement.

Dans cet article

Concepts et utilisation des Web Workers

Un worker est un objet cr en utilisant un constructeur (e.g. Worker()) qui excute un fichier JavaScript nomm ce fichier contient le code que doit excuter le thread du worker; les workers s'excutent dans un autre contexte global qui est diffrent du contexte actuel window. Ce contexte est reprsent par un objet DedicatedWorkerGlobalScope dans le cas des workers ddis (workers standards utiliss par un script unique; les workers partags utilisent SharedWorkerGlobalScope).

Vous pouvez excuter quelque code que ce soit l'intrieur du thread du worker, avec quelques exceptions cependant. Par exemple, vous ne pouvez pas directement manipuler le DOM partir d'un worker, ou utiliser des mthodes et des proprits par dfaut de l'objet window. Mais vous pouvez utiliser un grand nombre des lments disponibles sous window, comprenant les WebSockets, et les mcanismes de stockage de donnes tels qu'IndexedDB et l'API Data Store spcifique Firefox OS. Consultez Les fonctions et classes accessibles aux workers pour plus de dtails.

Les donnes sont envoyes entre les workers et le thread principal au moyen d'un sytme de messages des deux cts les messages sont envoys en utilisant la mthode postMessage(), et la rponse leur parvient au moyen du gestionnaire d'vnement onmessage (le message est contenu dans l'attribut data de l'vnement message.) Les donnes sont copies plutt que partages.

Les workers peuvent leur tour engendrer de nouveaux workers, aussi longtemps que ces workers partagent la mme origine que la page parente. De plus, les workers peuvent utiliser XMLHttpRequest pour les E/S rseau, l'exception que les attributs responseXML et channel de XMLHttpRequest retournent toujours null.

En plus des workers ddis, il y a d'autres types de worker :

  • Les workers partags sont des workers qui peuvent tre utiliss par de multiples scripts s'excutant dans diffrentes fentres, IFrames, etc., aussi longtemps qu'ils sont dans le mme domaine que le worker. Leur fonctionnement est un petit plus complexe que les workers ddis les scripts doivent communiquer via un port actif. Consultez SharedWorker pour plus de dtails.
  • Les ServiceWorkers fonctionnent essentiellement comme des serveurs proxy placs entre des applications web, et le navigateur et le rseau (lorsque disponibles). Ils sont destins (entre autres choses) permettre la cration de vritables expriences dconnectes, interceptant les requtes du rseau et prenant des dcisions appropries en fonction de la disponibilit du rseau et de la mise jours des ressources situes sur le serveur. Ils permettront aussi d'accder des notifications pousses (push) et des APIs synchronises en arrire-plan.
  • Les Workers Chrome sont un type de worker spcifique Firefox que vous pouvez utiliser si vous dveloppez des extensions et que vous voulez y utiliser des workers et avoir accs aux js-ctypes dans votre worker. Consulter ChromeWorker pour plus de dtails.
  • Les Audio Workers donne la possibilit d'effectuer directement dans le contexte d'un worker web un traitement audio script.

Note : Selon les Spcifications de Web Worker, les erreurs dans les workers ne devraient pas dborder (voir bug Firefox 1188141). Cela a t implment dans Firefox 42.

Les interfaces Web Worker

AbstractWorker

Proprits et mthodes abstraites communes tous les types de workers (i.e. Worker ou SharedWorker).

Worker

Reprsente le thread d'un worker en cours d'excution, vous permettant de passer des messages au code du worker en cours d'excution.

WorkerLocation

Dfini la localisation du scripte excut par le Worker.

SharedWorker

Reprsente un type spcifique de worker qui peut tre accd partir de plusieurs contextes de navigation, savoir plusieurs fentres, iframes ou mme workers.

WorkerGlobalScope

Reprsente le contexte gnrique de tout worker (il joue le mme rle que Window pour un contenu web normal). Les diffrents types de worker ont un contexte d'objets qui hrite de cette interface et ajoute des fonctionnalits supplmentaires.

DedicatedWorkerGlobalScope

Reprsente le contexte d'un worker ddi, hritant de WorkerGlobalScope et ajoutant des fonctionnalits spcifiques.

SharedWorkerGlobalScope

Reprsente le contexte d'un worker partag, hritant de WorkerGlobalScope et ajoutant des fonctionnalits spcifiques.

WorkerNavigator

Reprsente l'identit et l'tat de l'agent utilisateur (le client):

Exemples

Nous avons cr deux simples dmos pour illustrer des usages basiques :

Vous pouvez obtenir plus d'informations sur le fonctionnement de ces dmos dans notre guide d'utilisation des web workers.

Spcifications

Spcification
HTML
# workers

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page