1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
---
title: WorkerGlobalScope
slug: Web/API/WorkerGlobalScope
tags:
- API
- Interface
- Reference
- TopicStub
- WorkerGlobalScope
- Workers
translation_of: Web/API/WorkerGlobalScope
---
<p>{{APIRef("Web Workers API")}}</p>
<p>L'interface <code><strong>WorkerGlobalScope</strong></code> de l'<a href="/en-US/docs/Web/API/Web_Workers_API">API Web Workers</a> est une interface représentant la portée de tout worker. Les Workers n'ont pas de contexte de navigation; cette portée contient les informations généralement véhiculées par les objets {{domxref("Window")}} — dans ce cas les gestionnaires d'événements, la console ou l'objet {{domxref("WorkerNavigator")}} associé. Chaque <code>WorkerGlobalScope</code> a sa propre boucle d'événements.</p>
<p>Cette interface est généralement spécialisée par chaque type de worker : {{domxref("DedicatedWorkerGlobalScope")}} pour les workers dédiés, {{domxref("SharedWorkerGlobalScope")}} pour les workers partagés, et {{domxref("ServiceWorkerGlobalScope")}} pour <a href="/en-US/docs/Web/API/ServiceWorker_API">ServiceWorker</a>. La propriété <code>self</code> renvoie la portée spécialisée pour chaque contexte.</p>
<h2 id="Propriétés">Propriétés</h2>
<p><em>Cette interface hérite des propriétés de l'interface {{domxref("EventTarget")}} et implémente les propriétés de {{domxref("WindowTimers")}}, {{domxref("WindowBase64")}}, et {{domxref("WindowEventHandlers")}}.</em></p>
<h3 id="Propriétés_standard">Propriétés standard</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.navigator")}} {{readOnlyinline}}</dt>
<dd>Renvoie le {{domxref("WorkerNavigator")}} associé au worker. C'est un objet navigator spécifique, principalement un sous-ensemble de {{domxref("Navigator")}} pour la navigation dans les portées, mais adapté aux workers.</dd>
<dt>{{domxref("WorkerGlobalScope.self")}} {{readOnlyinline}}</dt>
<dd>Renvoie une référence au <code>WorkerGlobalScope</code> lui-même. La plupart du temps, il s'agit d'une portée spécifique comme {{domxref("DedicatedWorkerGlobalScope")}}, {{domxref("SharedWorkerGlobalScope")}} ou {{domxref("ServiceWorkerGlobalScope")}}.</dd>
<dt>{{domxref("WorkerGlobalScope.location")}} {{readOnlyinline}}</dt>
<dd>Renvoie le {{domxref("WorkerLocation")}} associé au worker. Il s'agit d'un objet de localisation spécifique, principalement un sous-ensemble de {{domxref ("Location")}} pour les portées de navigation, mais adapté aux workers.</dd>
</dl>
<h3 id="Propriétés_non_standard">Propriétés non standard</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.performance")}} {{readOnlyinline}} {{Non-standard_inline}}</dt>
<dd>Renvoie la {{domxref ("Performance")}} associée au worker. Il s'agit d'un objet de performance standard, sauf que seul un sous-ensemble de sa propriété et de ses méthodes est disponible pour les nœuds de calcul.</dd>
<dt>{{domxref("WorkerGlobalScope.console")}} {{readOnlyinline}} {{Non-standard_inline}}</dt>
<dd>Renvoie la {{domxref("Console")}} associée au worker.</dd>
</dl>
<h3 id="Gestionnaires_dévénements">Gestionnaires d'événements</h3>
<p>Cette interface hérite des gestionnaires d'événements de l'interface {{domxref ("EventTarget")}} et implémente les gestionnaires d'événements de {{domxref ("WindowTimers")}} et {{domxref ("WindowBase64")}}.</p>
<dl>
<dt>{{domxref("WorkerGlobalScope.onerror")}}</dt>
<dd>Est un {{domxref ("EventHandler")}} représentant le code à appeler lorsque l'événement {{event ("error")}} est déclenché.</dd>
<dt>{{domxref("WorkerGlobalScope.onoffline")}}</dt>
<dd>Est un {{domxref ("EventHandler")}} représentant le code à appeler lorsque l'événement {{event ("offline")}} est déclenché.</dd>
<dt>{{domxref("WorkerGlobalScope.ononline")}}</dt>
<dd>Est un {{domxref ("EventHandler")}} représentant le code à appeler lorsque l'événement {{event ("online")}} est déclenché.</dd>
<dt>{{domxref("WorkerGlobalScope.onlanguagechange")}}</dt>
<dd>Un {{domxref ("EventHandler")}} déclenché sur l'objet de portée global / worker lorsque les langues préférées de l'utilisateur changent.</dd>
</dl>
<dl>
<dt>{{domxref("WorkerGlobalScope.onclose")}} {{Non-standard_inline}}</dt>
<dd>Est un {{domxref ("EventHandler")}} représentant le code à appeler lorsque l'événement {{event ("close")}} est déclenché.</dd>
</dl>
<h2 id="Méthodes">Méthodes</h2>
<p>Cette interface hérite des méthodes de l'interface {{domxref ("EventTarget")}} et implémente les méthodes de {{domxref ("WindowTimers")}}, {{domxref ("WindowBase64")}}, {{domxref ("WindowEventHandlers")}} et {{domxref ("GlobalFetch")}}.</p>
<h3 id="Méthodes_standard">Méthodes standard</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.close()")}}</dt>
<dd>Ignore toutes les tâches mises en file d'attente dans la boucle d'événements de <code>WorkerGlobalScope</code>, fermant ainsi cette portée particulière.</dd>
<dt>{{domxref("WorkerGlobalScope.importScripts()")}}</dt>
<dd>Importe un ou plusieurs scripts dans la portée du worker. Vous pouvez en spécifier autant que vous le souhaitez, séparés par des virgules. Par exemple:<code> importScripts('foo.js', 'bar.js');</code></dd>
</dl>
<h3 id="Méthodes_non_standard">Méthodes non standard</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.dump()")}} {{non-standard_inline}}</dt>
<dd>Vous permet d'écrire un message stdout — c'est-à-dire dans votre terminal. C'est la même chose que {{domxref ("window.dump")}} de Firefox, mais pour les workers.</dd>
</dl>
<h3 id="Méthodes_mises_en_œuvre_dailleurs">Méthodes mises en œuvre d'ailleurs</h3>
<dl>
<dt>{{domxref("WindowBase64.atob()")}}</dt>
<dd>Décode une chaîne de données qui a été encodée à l'aide d'un encodage base 64.</dd>
<dt>{{domxref("WindowBase64.btoa()")}}</dt>
<dd>Crée une chaîne ASCII encodée en base 64 à partir d'une chaîne de données binaires.</dd>
<dt>{{domxref("WindowTimers.clearInterval()")}}</dt>
<dd>Annule l'exécution répétée définie à l'aide de {{domxref ("WindowTimers.setInterval ()")}}.</dd>
<dt>{{domxref("WindowTimers.clearTimeout()")}}</dt>
<dd>Annule l'exécution répétée définie à l'aide de {{domxref ("WindowTimers.setTimeout ()")}}.</dd>
<dt>{{domxref("GlobalFetch.fetch()")}}</dt>
<dd>Démarre le processus de récupération d'une ressource.</dd>
<dt>{{domxref("WindowTimers.setInterval()")}}</dt>
<dd>Planifie l'exécution d'une fonction toutes les X millisecondes.</dd>
<dt>{{domxref("WindowTimers.setTimeout()")}}</dt>
<dd>Définit un délai pour l'exécution d'une fonction.</dd>
</dl>
<h2 id="Exemple">Exemple</h2>
<p>Vous n'accéderez pas à <code>WorkerGlobalScope</code> directement dans votre code; cependant, ses propriétés et méthodes sont héritées par des portées globales plus spécifiques telles que {{domxref ("DedicatedWorkerGlobalScope")}} et {{domxref ("SharedWorkerGlobalScope")}}. Par exemple, vous pouvez importer un autre script dans le worker et imprimer le contenu de l'objet <code>navigator</code> de l'étendue du worker en utilisant les deux lignes suivantes:</p>
<pre class="brush: js notranslate">importScripts('foo.js');
console.log(navigator);</pre>
<div class="note">
<p><strong>Note</strong>: Étant donné que la portée globale du script de worker est effectivement la portée globale du worker que vous exécutez ({{domxref ("DedicatedWorkerGlobalScope")}} ou autre) et que toutes les portées globales de worker héritent des méthodes, des propriétés, etc. À partir de <code>WorkerGlobalScope</code>, vous pouvez exécuter des lignes telles que celles ci-dessus sans spécifier d'objet parent.</p>
</div>
<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', '#workerglobalscope', 'WorkerGlobalScope')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>Aucun changement par rapport à {{SpecName ("Web Workers")}}.</td>
</tr>
<tr>
<td>{{SpecName('Web Workers', '#workerglobalscope', 'WorkerGlobalScope')}}</td>
<td>{{Spec2('Web Workers')}}</td>
<td>Définition initiale.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Support de base</td>
<td>{{CompatChrome(4)}}</td>
<td>{{CompatGeckoDesktop("1.9.1")}}</td>
<td>10</td>
<td>10.6</td>
<td>4</td>
</tr>
<tr>
<td><code>ononline</code>, <code>onoffline</code></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("29")}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>console</code> {{Non-standard_inline}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("29")}} as <code>WorkerConsole</code><br>
{{CompatGeckoDesktop("30")}} as the regular <code>Console</code></td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>performance</code></td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoDesktop("34")}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Fonctionnalité</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Support de base</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("1.9.1")}}</td>
<td>1.0.1</td>
<td>10</td>
<td>11.5</td>
<td>5.1</td>
</tr>
<tr>
<td><code>ononline</code>, <code>onoffline</code></td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("29")}} as a specific <code>WorkerConsole</code><br>
{{CompatGeckoMobile("30")}} as the regular <code>Console</code></td>
<td>1.4</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>console</code> {{Non-standard_inline}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("29")}}</td>
<td>1.4</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
<tr>
<td><code>performance</code></td>
<td>{{CompatUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatGeckoMobile("34")}}</td>
<td>2.1</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
<td>{{CompatUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Voir_également">Voir également</h2>
<ul>
<li>Autre interface d'objet globale: {{domxref("Window")}}, {{domxref("DedicatedWorkerGlobalScope")}}, {{domxref("SharedWorkerGlobalScope")}}, , {{domxref("ServiceWorkerGlobalScope")}}</li>
<li>Autres interfaces liées aux travailleurs: {{domxref("Worker")}}, {{domxref("WorkerLocation")}}, {{domxref("WorkerGlobalScope")}}, et {{domxref("ServiceWorkerGlobalScope")}}.</li>
<li><a href="/en-US/docs/Web/Guide/Performance/Using_web_workers" title="/en-US/docs/Web/Guide/Performance/Using_web_workers">Utilisation de web workers.</a></li>
</ul>
<dl>
</dl>
|