WorkerGlobalScope

注意:此功能仅在 Web Workers 中可用。

WorkerGlobalScopeWeb Workers API 的一个接口,它表示任何工作者的作用域。工作者没有浏览上下文;此作用域包含通常由 Window 对象传递的信息 - 在这种情况下,事件处理程序、控制台或关联的 WorkerNavigator 对象。每个 WorkerGlobalScope 都有自己的事件循环。

此接口通常由每种工作者类型专门化:DedicatedWorkerGlobalScope 用于专用工作者,SharedWorkerGlobalScope 用于共享工作者,以及 ServiceWorkerGlobalScope 用于 ServiceWorkerself 属性返回每个上下文的专门作用域。

EventTarget WorkerGlobalScope

实例属性

此接口继承了来自 EventTarget 接口的属性。

WorkerGlobalScope.caches 只读 安全上下文

返回与当前上下文关联的 CacheStorage 对象。此对象启用诸如将资产存储以供离线使用以及为请求生成自定义响应之类的功能。

console 只读 非标准

返回与工作者关联的 console

WorkerGlobalScope.crossOriginIsolated 只读

返回一个布尔值,指示网站是否处于跨源隔离状态。

WorkerGlobalScope.crypto 只读

返回与全局对象关联的 Crypto 对象。

WorkerGlobalScope.fonts 只读

返回与工作者关联的 FontFaceSet

WorkerGlobalScope.indexedDB 只读

为工作者提供了一种异步访问索引数据库功能的机制;返回一个 IDBFactory 对象。

WorkerGlobalScope.isSecureContext 只读

返回一个布尔值,指示当前上下文是否安全(true)还是不安全(false)。

WorkerGlobalScope.location 只读

返回与工作者关联的 WorkerLocation。它是一个特定的位置对象,主要是浏览范围的 Location 的子集,但适用于工作者。r。

WorkerGlobalScope.navigator 只读

返回与工作者关联的 WorkerNavigator。它是一个特定的导航器对象,主要是浏览范围的 Navigator 的子集,但适用于工作者。

WorkerGlobalScope.origin 只读

返回全局对象的来源,序列化为字符串。

WorkerGlobalScope.performance 只读

返回与工作者关联的 Performance。只有 Performance 接口的一部分属性和方法可用于工作者。

WorkerGlobalScope.scheduler 只读

返回与当前上下文关联的 Scheduler 对象。这是使用 优先级任务调度 API 的入口点。

WorkerGlobalScope.trustedTypes 只读

返回与全局对象关联的 TrustedTypePolicyFactory 对象,为使用 Trusted Types API 提供入口点。

WorkerGlobalScope.self 只读

返回对 WorkerGlobalScope 本身的引用。大多数情况下,它是一个特定的作用域,例如 DedicatedWorkerGlobalScopeSharedWorkerGlobalScopeServiceWorkerGlobalScope

实例方法

此接口继承了来自 EventTarget 接口的方法。

WorkerGlobalScope.atob()

解码使用 base-64 编码编码的数据字符串。

WorkerGlobalScope.btoa()

从二进制数据的字符串创建 base-64 编码的 ASCII 字符串。

WorkerGlobalScope.clearInterval()

取消使用 setInterval() 设置的重复执行。

WorkerGlobalScope.clearTimeout()

取消使用 setTimeout() 设置的延迟执行。

WorkerGlobalScope.createImageBitmap()

接受各种不同的图像源,并返回一个 Promise,该 Promise 解析为一个 ImageBitmap。可选地,源被裁剪到以 (sx, sy) 为起点、宽度为 sw、高度为 sh 的像素矩形。

WorkerGlobalScope.dump() 已弃用 非标准

允许您将消息写入 stdout - 即在您的终端中。这与 Firefox 的 window.dump 相同,但适用于工作者。

WorkerGlobalScope.fetch()

开始从网络获取资源的过程。

WorkerGlobalScope.importScripts()

将一个或多个脚本导入工作者的作用域。您可以指定任意数量的脚本,用逗号分隔。例如:importScripts('foo.js', 'bar.js');

WorkerGlobalScope.queueMicrotask()

将一个微任务排队,以便在控制权返回到浏览器的事件循环之前安全地执行。

WorkerGlobalScope.setInterval()

安排一个函数在经过给定毫秒数后每次执行。

WorkerGlobalScope.setTimeout()

安排一个函数在给定时间段后执行。

WorkerGlobalScope.structuredClone()

使用 结构化克隆算法 创建给定值的 深层克隆

WorkerGlobalScope.reportError()

报告脚本中的错误,模拟未捕获的异常。

事件

error

在发生错误时触发。

languagechange

当用户的首选语言发生更改时,在全局/工作者作用域对象上触发。

offline

当浏览器无法访问网络并且 navigator.onLine 的值切换为 false 时触发。

online

当浏览器能够访问网络并且 navigator.onLine 的值切换为 true 时触发。

rejectionhandled

在处理过的 Promise 拒绝事件上触发。

securitypolicyviolation

内容安全策略 被违反时触发。

unhandledrejection

在未处理的 Promise 拒绝事件上触发。

示例

您不会直接在代码中访问 WorkerGlobalScope;但是,其属性和方法由更具体的全局作用域继承,例如 DedicatedWorkerGlobalScopeSharedWorkerGlobalScope。例如,您可以将另一个脚本导入工作者,并使用以下两行打印出工作者作用域的 navigator 对象的内容

js
importScripts("foo.js");
console.log(navigator);

注意:由于工作者脚本的全局作用域实际上是您正在运行的工作者的全局作用域(DedicatedWorkerGlobalScope 或其他),并且所有工作者全局作用域都继承了 WorkerGlobalScope 的方法、属性等,因此您可以在不指定父对象的情况下运行上述行。

规范

规范
HTML 标准
# the-workerglobalscope-common-interface

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见