WorkerGlobalScope
Baseline 广泛可用 *
注意:此功能仅在 Web Workers 中可用。
WorkerGlobalScope 接口是 Web Workers API 的一部分,代表任何 worker 的作用域。Worker 没有浏览上下文;这个作用域包含通常由 Window 对象传达的信息 — 在这种情况下,包括事件处理器、控制台或关联的 WorkerNavigator 对象。每个 WorkerGlobalScope 都有自己的事件循环。
此接口通常由每种 worker 类型进行专门化:DedicatedWorkerGlobalScope 用于专用 worker,SharedWorkerGlobalScope 用于共享 worker,ServiceWorkerGlobalScope 用于 ServiceWorker。self 属性返回每个上下文的专用作用域。
实例属性
此接口继承自 EventTarget 接口的属性。
WorkerGlobalScope.caches只读 安全上下文-
返回与当前上下文关联的
CacheStorage对象。该对象启用离线使用资产存储、生成自定义请求响应等功能。 WorkerGlobalScope.crossOriginIsolated只读-
返回一个布尔值,指示网站是否处于跨源隔离状态。
WorkerGlobalScope.crypto只读-
返回与全局对象关联的
Crypto对象。 WorkerGlobalScope.fonts只读-
返回与 worker 关联的
FontFaceSet。 WorkerGlobalScope.indexedDB只读-
提供了一种机制,供 worker 异步访问索引数据库的功能;返回一个
IDBFactory对象。 WorkerGlobalScope.isSecureContext只读-
返回一个布尔值,指示当前上下文是否安全(
true)或不安全(false)。 WorkerGlobalScope.location只读-
返回与 worker 关联的
WorkerLocation。它是一个特定的位置对象,大部分是浏览作用域的Location的子集,但适用于 worker。 -
返回与 worker 关联的
WorkerNavigator。它是一个特定的 navigator 对象,大部分是浏览作用域的Navigator的子集,但适用于 worker。 WorkerGlobalScope.origin只读-
返回全局对象的 origin(源),并将其序列化为字符串。
WorkerGlobalScope.performance只读-
返回与 worker 关联的
Performance对象。只有Performance接口的属性和方法的一部分可供 worker 使用。 WorkerGlobalScope.scheduler只读-
返回与当前上下文关联的
Scheduler对象。这是使用 Prioritized Task Scheduling API 的入口点。 WorkerGlobalScope.trustedTypes只读-
返回与全局对象关联的
TrustedTypePolicyFactory对象,这是使用 Trusted Types API 的入口点。 WorkerGlobalScope.self只读-
返回对
WorkerGlobalScope本身的引用。大多数情况下,它是一个特定作用域,例如DedicatedWorkerGlobalScope、SharedWorkerGlobalScope或ServiceWorkerGlobalScope。
实例方法
此接口继承自 EventTarget 接口的方法。
WorkerGlobalScope.atob()-
解码使用 base-64 编码的数据字符串。
WorkerGlobalScope.btoa()-
从二进制数据字符串创建 base-64 编码的 ASCII 字符串。
WorkerGlobalScope.clearInterval()-
取消使用
WorkerGlobalScope.setInterval()设置的重复执行。 WorkerGlobalScope.clearTimeout()-
取消使用
WorkerGlobalScope.setTimeout()设置的延迟执行。 WorkerGlobalScope.createImageBitmap()-
接受各种不同的图像源,并返回一个
Promise,该 Promise 解析为ImageBitmap。可选地,源会被裁剪到以 (sx, sy) 为起点、宽度为 sw、高度为 sh 的像素矩形区域。 WorkerGlobalScope.dump()已弃用 非标准-
允许您将消息写入 stdout — 即,写入您的终端。这与 Firefox 的
window.dump相同,但适用于 worker。 WorkerGlobalScope.fetch()-
开始从网络获取资源的进程。
WorkerGlobalScope.importScripts()-
将一个或多个脚本导入到 worker 的作用域中。您可以指定任意数量的脚本,用逗号分隔。例如:
importScripts('foo.js', 'bar.js');。 WorkerGlobalScope.queueMicrotask()-
排队等待一个微任务,以便在控制权安全返回到浏览器的事件循环之前执行。
WorkerGlobalScope.setInterval()-
安排一个函数在每经过给定毫秒数时执行。
WorkerGlobalScope.setTimeout()-
安排一个函数在给定时间内执行。
WorkerGlobalScope.structuredClone()WorkerGlobalScope.reportError()-
报告脚本中的错误,模拟未捕获的异常。
事件
error-
发生错误时触发。
languagechange-
当用户的首选语言发生变化时,在全局/worker 作用域对象上触发。
offline-
当浏览器失去网络访问权限且
navigator.onLine的值切换为false时触发。 online-
当浏览器重新获得网络访问权限且
navigator.onLine的值切换为true时触发。 rejectionhandled-
在已处理的
Promise拒绝事件上触发。 securitypolicyviolation-
当 内容安全策略 被违反时触发。
unhandledrejection-
在未处理的
Promise拒绝事件上触发。
示例
您不会在代码中直接访问 WorkerGlobalScope;然而,它的属性和方法会被更具体的全局作用域继承,例如 DedicatedWorkerGlobalScope 和 SharedWorkerGlobalScope。例如,您可以使用以下两行代码导入另一个脚本到 worker 中,并打印出 worker 作用域的 navigator 对象的内容:
importScripts("foo.js");
console.log(navigator);
注意: 由于 worker 脚本的全局作用域实际上是您正在运行的 worker 的全局作用域(DedicatedWorkerGlobalScope 或其他),并且所有 worker 全局作用域都继承自 WorkerGlobalScope 的方法、属性等,因此您可以运行上面的代码行,而无需指定父对象。
规范
| 规范 |
|---|
| HTML # the-workerglobalscope-common-interface |
浏览器兼容性
加载中…
另见
- 其他全局对象接口:
Window、DedicatedWorkerGlobalScope、SharedWorkerGlobalScope、ServiceWorkerGlobalScope - 其他与 Worker 相关的接口:
Worker、WorkerLocation和WorkerNavigator - 使用 Web Worker