WindowOrWorkerGlobalScope執(zhí)行者:WorkerGlobalScope

2018-09-29 11:18 更新

WorkerGlobalScope

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

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

屬性

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

標(biāo)準(zhǔn)屬性

   WorkerGlobalScope.navigator (只讀)

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

非標(biāo)準(zhǔn)屬性

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

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

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

事件處理程序

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

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

方法

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

標(biāo)準(zhǔn)方法

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

非標(biāo)準(zhǔn)方法

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

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

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

不推薦的方法

WorkerGlobalScope.close()
丟棄在WorkerGlobalScope事件循環(huán)中排隊(duì)的任何任務(wù),從而有效地關(guān)閉此特定范圍。在較新的瀏覽器版本中,close()可以在DedicatedWorkerGlobalScope和SharedWorkerGlobalScope上使用。這種更改是為了停止close()在服務(wù)worker上可用,因?yàn)樗粦?yīng)該在那里使用并且在調(diào)用時(shí)總是拋出異常(參見(jiàn)錯(cuò)誤1336043)。

示例

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

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

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

規(guī)范

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

瀏覽器兼容性

電腦端 移動(dòng)端
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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)