| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/API/Web_Workers_API | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
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.
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 :
SharedWorker pour plus de dtails.ChromeWorker pour plus de dtails.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.
AbstractWorkerProprits et mthodes abstraites communes tous les types de workers (i.e. Worker ou SharedWorker).
WorkerReprsente le thread d'un worker en cours d'excution, vous permettant de passer des messages au code du worker en cours d'excution.
WorkerLocationDfini la localisation du scripte excut par le Worker.
SharedWorkerReprsente un type spcifique de worker qui peut tre accd partir de plusieurs contextes de navigation, savoir plusieurs fentres, iframes ou mme workers.
WorkerGlobalScopeReprsente 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.
DedicatedWorkerGlobalScopeReprsente le contexte d'un worker ddi, hritant de WorkerGlobalScope et ajoutant des fonctionnalits spcifiques.
SharedWorkerGlobalScopeReprsente le contexte d'un worker partag, hritant de WorkerGlobalScope et ajoutant des fonctionnalits spcifiques.
WorkerNavigatorReprsente l'identit et l'tat de l'agent utilisateur (le client):
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.
| Spcification |
|---|
| HTML # workers |
Cette page a t modifie le 17 dc. 2024 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |