WindowOrWorkerGlobalScope執(zhí)行者:WorkerGlobalScope

2018-09-29 11:18 更新

WorkerGlobalScope

Web Workers API的WorkerGlobalScope接口是代表任何worker范圍的接口。worker沒有瀏覽上下文;此范圍包含通常由Window對象傳遞的信息- 在本例中為事件處理程序,控制臺或關聯(lián)的WorkerNavigator對象。每個WorkerGlobalScope都有自己的事件循環(huán)。

此接口通常由每個worker類型專門化:專用于worker的DedicatedWorkerGlobalScope,SharedWorkerGlobalScope對于worker和ServiceWorkerGlobalScope對于ServiceWorker。該self屬性返回每個上下文的專用范圍。

屬性

此接口從EventTarget接口繼承屬性,并從WindowOrWorkerGlobalScope和WindowEventHandlers mixin實現(xiàn)屬性。

標準屬性

   WorkerGlobalScope.navigator (只讀)

返回與worker關聯(lián)的WorkerNavigator。它是一個特定的導航器對象,主要是用于瀏覽范圍的Navigator的子集,但適用于worker。
WorkerGlobalScope.self (只讀)
返回對WorkerGlobalScope自身的引用。大多數(shù)情況下,它是一個特定的范圍,如:DedicatedWorkerGlobalScope,SharedWorkerGlobalScope或ServiceWorkerGlobalScope。
WorkerGlobalScope.location (只讀)
返回與worker關聯(lián)的WorkerLocation。它是一個特定的位置對象,主要是瀏覽范圍的Location的子集,但適用于worker。

非標準屬性

WorkerGlobalScope.performance (只讀)
返回與worker關聯(lián)的Performance。它是一個常規(guī)的性能對象,只不過它的屬性和方法的子集只能用于worker。
WorkerGlobalScope.console (只讀)
返回與worker關聯(lián)的Console。

從其它地方實現(xiàn)的屬性

WindowOrWorkerGlobalScope.caches (只讀)
返回與當前上下文關聯(lián)的CacheStorage對象。此對象啟用諸如存儲資產(chǎn)以供脫機使用以及生成對請求的自定義響應等功能。
WindowOrWorkerGlobalScope.indexedDB (只讀)
為應用程序提供了一種機制,用于異步訪問索引數(shù)據(jù)庫的功能;返回一個 IDBFactory 對象。
WindowOrWorkerGlobalScope.isSecureContext (只讀)
返回一個布爾值,指示當前上下文是否為secure(true)或不是(false)。
WindowOrWorkerGlobalScope.origin (只讀)
返回全局對象的原點,序列化為字符串。(這似乎還沒有在任何瀏覽器中實現(xiàn)。)

事件處理程序

此接口從EventTarget接口(包括來自GlobalEventHandlers接口)繼承事件處理程序,并從WindowTimers mixin實現(xiàn)事件處理程序。

WorkerGlobalScope.onerror
是一個EventHandler,表示引發(fā)error事件時要調(diào)用的代碼。
WorkerGlobalScope.onoffline
是一個EventHandler,表示引發(fā)offline事件時要調(diào)用的代碼。
WorkerGlobalScope.ononline
是一個EventHandler,表示引發(fā)online事件時要調(diào)用的代碼。
WorkerGlobalScope.onlanguagechange
一個EventHandler在全球/工人范圍對象時,會引發(fā)用戶的首選語言的改變。當用戶首選語言更改時,在全局/工作范圍對象上引發(fā)EventHandler。
WorkerGlobalScope.onclose  
是一個EventHandler,表示引發(fā)close事件時要調(diào)用的代碼。
WorkerGlobalScope.onrejectionhandled 
處理Promise拒絕事件的事件處理程序。
WorkerGlobalScope.onunhandledrejection 
未處理Promise 拒絕事件的事件處理程序。

方法

此接口從EventTarget接口繼承方法,并實現(xiàn)WindowOrWorkerGlobalScope和WindowEventHandlers mixin的屬性。

標準方法

WorkerGlobalScope.importScripts()
將一個或多個腳本導入到worker的作用域中。您可以指定任意多個,用逗號分隔。例如:importScripts('foo.js', 'bar.js');

非標準方法

WorkerGlobalScope.dump() 
允許您向stdout寫一條消息 - 即在您的終端中。這與Firefox的window.dump相同,但適用于worker。

從其他地方實現(xiàn)的方法

WindowOrWorkerGlobalScope.atob()
對已使用base-64編碼進行編碼的數(shù)據(jù)字符串進行解碼。
WindowOrWorkerGlobalScope.btoa()
從二進制數(shù)據(jù)字符串創(chuàng)建base-64編碼的ASCII字符串。
WindowOrWorkerGlobalScope.clearInterval()
使用WindowOrWorkerGlobalScope.setInterval()取消重復執(zhí)行集。
WindowOrWorkerGlobalScope.clearTimeout()
使用WindowOrWorkerGlobalScope.setTimeout()取消延遲執(zhí)行集。
WindowOrWorkerGlobalScope.createImageBitmap()
接受各種不同的圖像源,并返回一個解析為ImageBitmap的Promise??蛇x地,將源裁剪為源自(sx,sy)的像素矩形,其寬度為sw,高度為sh。
WindowOrWorkerGlobalScope.fetch()
開始從網(wǎng)絡獲取資源的過程。
WindowOrWorkerGlobalScope.setInterval()
計劃在每次經(jīng)過給定的毫秒數(shù)時執(zhí)行的函數(shù)。
WindowOrWorkerGlobalScope.setTimeout()
計劃在給定時間內(nèi)執(zhí)行的函數(shù)。

不推薦的方法

WorkerGlobalScope.close()
丟棄在WorkerGlobalScope事件循環(huán)中排隊的任何任務,從而有效地關閉此特定范圍。在較新的瀏覽器版本中,close()可以在DedicatedWorkerGlobalScope和SharedWorkerGlobalScope上使用。這種更改是為了停止close()在服務worker上可用,因為它不應該在那里使用并且在調(diào)用時總是拋出異常(參見錯誤1336043)。

示例

您不會直接在您的代碼中訪問WorkerGlobalScope;但是,它的屬性和方法由更具體的全局范圍繼承,例如:DedicatedWorkerGlobalScope和SharedWorkerGlobalScope。例如,您可以將另一個腳本導入到worker中,并使用以下兩行輸出worker范圍的navigator對象的內(nèi)容:

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

由于worker腳本的全局范圍實際上是您正在運行的worker(DedicatedWorkerGlobalScope或其他)的全局范圍,并且所有worker全局范圍都從WorkerGlobalScope繼承了方法,屬性等,因此您可以運行上述行,而無需指定父對象。

規(guī)范

規(guī)范 狀態(tài) 注釋
HTML Living Standard 
該規(guī)范中“WorkerGlobalScope”的定義。
Living Standard
 

瀏覽器兼容性

電腦端 移動端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持 支持:4 支持 支持:3.5 支持:10 支持:10.6 支持:4 ? 支持 支持 支持:4 支持:11.5 支持:5.1
location 支持:4
? 支持:3.5
支持 支持:11.5 支持:4 ? 支持:40 ? 支持:4
支持 支持:5.1
navigator 支持:4
支持:17 支持:3.5
支持 支持:11.5 支持:4 ? 支持:40
支持:17 支持:4
支持 支持:5.1
onerror 支持:4
? 支持:3.5
支持 支持:11.5 支持:4 ? 支持:40
? 支持:4
支持 支持:5.1
onlanguagechange 支持:4
支持:3.5
支持 支持:11.5 支持:4 ? 支持:40
? 支持:4
支持 支持:5.1
onoffline 支持:4
支持:29 ? ? ? 支持 支持:40
? 支持:29 ? ?
ononline 支持:4
支持:29 ? ? 支持 支持:40
支持:29 ? ?
performance 支持 支持:34 ? ? ? 支持 ? 支持:34 ? ?
self 支持:4
支持:3.5 支持 支持:11.5 支持:4 ? 支持:40
? 支持:34 支持 支持:5.1
console
(棄用)
支持:4
? 支持:29 支持 支持 支持 ? 支持 ? 支持:29

? ?
close
(棄用)
支持:4
? 支持:3.5 支持 支持:11.5 支持:4 ? 支持 支持:4 ? ?
dump
(棄用)
不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 不支持 支持:4 不支持 不支持
importScripts 支持 不支持 支持 支持 支持 支持 支持 支持 支持 支持:4 支持 支持
onclose
(棄用)
支持:4
不支持:3.5 - 50 支持 支持:11.5 支持:4 ? 支持:40 不支持 不支持:4 - 50 支持 支持:5.1
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號