Web Workers 可以使用的函数和类

除了标准的 JavaScript 函数集(例如 StringArrayObjectJSON 等)DOM 中的许多函数都可在 worker 中使用。本文列出了这些函数。

Worker 上下文和函数

Worker 在另一个全局上下文中运行,与当前的 window 不同!Window 并不直接在 worker 中可用,其中的很多方法都通过共享的混入(WindowOrWorkerGlobalScope)定义,并通过 worker 派生的 WorkerGlobalScope 上下文提供这些方法:

一些函数在所有的 worker 和主线程中均可用(来自 WindowOrWorkerGlobalScope):atob()btoa()clearInterval()clearTimeout()dump() 非标准 setInterval()setTimeout()

以下函数在 worker 中可用:

Worker 中可用的 Web API

备注: 下面列出的 API 若仅被某一平台的特定版本支持,也假设其在 web worker 中可用。

以下 Web API 在 worker 中可用:Broadcast Channel APICache APIChannel Messaging APIConsole APICryptoCustomEventData Store(仅 Firefox)、DOMRequestDOMCursorFetchFileReaderFileReaderSync(仅在 worker 中可用)、FormDataImageDataIndexedDBNetwork Information APINotificationsPerformancePerformanceEntryPerformanceMeasure (en-US)PerformanceMark (en-US)PerformanceObserverPerformanceResourceTimingPromiseServer-sent 事件ServiceWorkerRegistrationTextEncoderTextDecoderURLWebGL 中的 OffscreenCanvas(通过特性首选项 gfx.offscreencanvas.enabled 启用)、WebSocketXMLHttpRequest(尽管 responseXMLchannel 属性始终为 null)。

worker 也可以创建其它的 worker,所以以下的 API 也同样可用:WorkerWorkerGlobalScopeWorkerLocation (en-US)WorkerNavigator (en-US)

参见