blob: e6acb236ac8d5002036d5271e4906654d5f8066e (
plain)
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
|
---
title: DedicatedWorkerGlobalScope
slug: Web/API/DedicatedWorkerGlobalScope
tags:
- API
- DedicatedWorkerGlobalScope
- Interface
- Reference
- Web Workers
- Workers
- 参考
- 接口
translation_of: Web/API/DedicatedWorkerGlobalScope
---
<p>{{APIRef("Web Workers API")}}</p>
<p><strong><code>DedicatedWorkerGlobalScope</code></strong> 对象(也就是 {{domxref("Worker")}} 全局作用域)可以通过 {{domxref("window.self","self")}} 关键字来访问。一些在 worker 全局作用域下不可用的全局函数、命名空间对象以及构造器,也可以通过此对象使用。在 <a href="/zh-CN/docs/Web/JavaScript/Reference">JavaScript 参考</a>的 <a href="/zh-CN/docs/Web/Guide/Needs_categorization/Functions_available_to_workers">Web Workers 可以使用的函数和类</a>页面中,有列举这些特性。</p>
<h2 id="属性">属性</h2>
<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承属性,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的属性。</em></p>
<dl>
<dt>{{domxref("DedicatedWorkerGlobalScope.name")}} {{readOnlyinline}}</dt>
<dd>通过 {{domxref("Worker.Worker", "Worker()")}} 构造器创建 {{domxref("Worker")}} 时,可以选择为其设置一个名称,即此属性的值。这主要用于调试。</dd>
</dl>
<h3 id="从_WorkerGlobalScope_继承的属性">从 WorkerGlobalScope 继承的属性</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.self")}}</dt>
<dd>返回一个指向 <code>DedicatedWorkerGlobalScope</code> 本身的对象引用。</dd>
<dt>{{domxref("WorkerGlobalScope.console")}} {{readOnlyinline}}</dt>
<dd>返回与当前 worker 相关联的 {{domxref("Console")}}。</dd>
<dt>{{domxref("WorkerGlobalScope.location")}} {{readOnlyinline}}</dt>
<dd>返回与当前 worker 相关联的 {{domxref("WorkerLocation")}}。<code>WorkerLocation</code> 是一个 worker 专有的 location 对象,基本上是浏览器作用域下 {{domxref("Location")}} 的子集,但被被适配给了 worker。</dd>
<dt>{{domxref("WorkerGlobalScope.navigator")}} {{readOnlyinline}}</dt>
<dd>返回与当前 worker 相关联的 {{domxref("WorkerNavigator")}}。<code>WorkerNavigator</code> 是一个 worker 专有的 navigator 对象,基本上是浏览器作用域下 {{domxref("Navigator")}} 的子集,但被被适配给了 worker。</dd>
<dt>{{domxref("WorkerGlobalScope.performance")}} {{readOnlyinline}} {{Non-standard_inline}}</dt>
<dd>返回与当前 worker 相关联的 {{domxref("Performance")}},是一个正常的 performance 对象,但只有一部分属性和方法可用。</dd>
</dl>
<h3 id="事件处理器">事件处理器</h3>
<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承事件处理器,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的事件处理器。</em></p>
<dl>
<dt>{{domxref("DedicatedWorkerGlobalScope.onmessage")}}</dt>
<dd>Is an {{event("Event_handlers")}} representing the code to be called when the {{event("message")}} event is raised. These events are of type {{domxref("MessageEvent")}} and will be called when the worker receives a message from the document that started it (i.e. from the {{domxref("Worker.postMessage")}} method.)</dd>
<dt>{{domxref("DedicatedWorkerGlobalScope.onmessageerror")}}</dt>
<dd>Is an {{event("Event_handlers")}} representing the code to be called when the {{event("messageerror")}} event is raised.</dd>
</dl>
<h2 id="方法">方法</h2>
<p><em>该接口从 {{domxref("WorkerGlobalScope")}} 接口以及它的父接口 {{domxref("EventTarget")}} 继承方法,因此,此接口也实现了来自 {{domxref("WindowTimers")}}、{{domxref("WindowBase64")}} 和{{domxref("WindowEventHandlers")}} 的方法。</em></p>
<dl>
<dt>{{domxref("WorkerGlobalScope.close()")}}</dt>
<dd>抛弃当前 <code>WorkerGlobalScope</code> 的 event loop 中所有正在排队的任务,关闭当前作用域。</dd>
<dt>{{domxref("DedicatedWorkerGlobalScope.postMessage")}}</dt>
<dd>向该 worker 的父文档发送消息——消息可以是任何 Javascript 对象。</dd>
</dl>
<h3 id="从_WorkerGlobalScope_继承的方法">从 WorkerGlobalScope 继承的方法</h3>
<dl>
<dt>{{domxref("WorkerGlobalScope.dump()")}} {{non-standard_inline}}</dt>
<dd>向控制台写入一条消息。</dd>
<dt>{{domxref("WorkerGlobalScope.importScripts()")}}</dt>
<dd>向当前 worker 的作用域导入一或更多条脚本。可按需导入任意数量的脚本,使用逗号分割参数。比如: <code>importScripts('foo.js', 'bar.js');</code></dd>
</dl>
<h3 id="从其他来源实现的方法">从其他来源实现的方法</h3>
<dl>
<dt>{{domxref("WindowBase64.atob()")}}</dt>
<dd>解码使用 base-64 编码的字符串数据。</dd>
<dt>{{domxref("WindowBase64.btoa()")}}</dt>
<dd>从字符串生成使用 base-64 编码的 ASCII 字符串。</dd>
<dt>{{domxref("WindowTimers.clearInterval()")}}</dt>
<dd>取消使用 {{domxref("WindowTimers.setInterval()")}} 创建的定时操作。</dd>
<dt>{{domxref("WindowTimers.clearTimeout()")}}</dt>
<dd>取消使用 {{domxref("WindowTimers.setTimeout()")}} 创建的定时操作。</dd>
<dt>{{domxref("WindowTimers.setInterval()")}}</dt>
<dd>每隔一定时间执行一次给定函数。</dd>
<dt>{{domxref("WindowTimers.setTimeout()")}}</dt>
<dd>延迟一定时间执行给定函数。</dd>
</dl>
<h2 id="事件">事件</h2>
<dl>
<dt><code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/message_event">message</a></code></dt>
<dd>Fired when the worker receives a message from its parent.<br>
Also available via the <code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/onmessage">onmessage</a></code> property.</dd>
<dt><code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event">messageerror</a></code></dt>
<dd>Fired when a worker receives a message that can't be deserialized.<br>
Also available via the <code><a href="/zh-CN/docs/Web/API/DedicatedWorkerGlobalScope/onmessageerror">onmessageerror</a></code> property.</dd>
</dl>
<h2 id="规范">规范</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">规范</th>
<th scope="col">状态</th>
<th scope="col">备注</th>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', '#dedicatedworkerglobalscope', 'DedicatedWorkerGlobalScope')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("api.DedicatedWorkerGlobalScope")}}</p>
<h2 id="参见">参见</h2>
<ul>
<li>{{domxref("Worker")}}</li>
<li>{{domxref("WorkerGlobalScope")}}</li>
<li><a href="/zh-CN/docs/Web/Guide/Performance/Using_web_workers">使用 web workers</a></li>
<li><a href="/zh-CN/docs/Web/Guide/Needs_categorization/Functions_available_to_workers">Web Workers 可以使用的函数和类</a></li>
</ul>
|