WorkerGlobalScope

Web Workers APIWorkerGlobalScope インターフェースは、いずれかの worker のスコープを表すインターフェースです。worker はブラウジングコンテクストを持ちません; このスコープには、通常 Window オブジェクトによって伝えられた情報が含まれます — この場合、イベントハンドラやコンソール、関連する WorkerNavigator (en-US) オブジェクトのことです。ぞれぞれの WorkerGlobalScope は独自のイベントループを持ちます。

このインターフェースは通常、 それぞれの work タイプによって特化されます: dedicated workers   のための DedicatedWorkerGlobalScope と shared workers のための SharedWorkerGlobalScopeServiceWorker のための ServiceWorkerGlobalScope です。self プロパティはそれぞれのコンテキストに特化したスコープを返します。

プロパティ

このインターフェースは、 EventTarget インターフェースから継承したプロパティと、 WindowTimersWindowBase64WindowEventHandlers からのプロパティを実装しています。

標準プロパティ

WorkerGlobalScope.caches 読取専用
現在のコンテキストに関連した CacheStorage オブジェクトを返す。このオブジェクトは、オフラインで使用するために資産を保存することやリクエストに対してカスタムレスポンスを生成するなどの  service worker の機能を使用できる。
WorkerGlobalScope.navigator (en-US) 読取専用
worker に関連した WorkerNavigator (en-US) を返す。これは特定の navigator オブジェクト、主にブラウジングスコープの Navigator ではなく、worker に適合する。
WorkerGlobalScope.self 読取専用
WorkerGlobalScope 自身の参照を返す。ほとんどの場合、 DedicatedWorkerGlobalScopeSharedWorkerGlobalScopeServiceWorkerGlobalScope のような特定のスコープである。
WorkerGlobalScope.location (en-US) 読取専用
worker に関連した WorkerLocation を返す。これは特定の location オブジェクト、主にブラウジングスコープの Location ではなく、worker に適合する。

非標準プロパティ

WorkerGlobalScope.performance (en-US) 読取専用
work に関連した Performance を返す。これは、プロパティとメソッドのサブセットのみが worker で利用できることを除いて、通常の performance オブジェクトである。
WorkerGlobalScope.console 読取専用
worker に関連した Console オブジェクトを返す。

イベントハンドラ

このインターフェースは、EventTarget インターフェースから継承したイベントハンドラと WindowTimersWindowBase64 のイベントハンドラを実装しています。

WorkerGlobalScope.onerror (en-US)
error イベントが発生したときに呼び出されるコードを表す event handler
WorkerGlobalScope.onoffline (en-US)
offline (en-US) イベントが発生したときに呼び出されるコードを表す event handler
WorkerGlobalScope.ononline (en-US)
online (en-US) イベントが発生したときに呼び出されるコードを表す event handler
WorkerGlobalScope.onlanguagechange (en-US)
ユーザーの選択言語を変更したときに、 global/worker スコープオブジェクトで発火する event handler
WorkerGlobalScope.onclose (en-US)
close イベントが発生したときに呼び出されるコードを表す event handler
WorkerGlobalScope.onrejectionhandled
Promise の rejection イベントを制御するためのイベントハンドラ。
WorkerGlobalScope.onunhandledrejection
制御されていない Promise の rejection イベントのためのイベントハンドラ。

メソッド

このインターフェースは、EventTarget インターフェースから併称したメソッドとWindowTimersWindowBase64WindowEventHandlersGlobalFetch のメソッドを実装しています。

標準メソッド

WorkerGlobalScope.close() (en-US)
効果的に特定のスコープを閉じ、 WorkerGlobalScope のイベントループにキューされているタスクを破棄する。
WorkerGlobalScope.importScripts()
worker のスコープに 1 つ以上のスクリプトをインポートする。カンマ区切りで任意の数を指定できる。例: importScripts('foo.js', 'bar.js');

非標準メソッド

WorkerGlobalScope.dump() (en-US)
標準出力にメッセージを記述できる — たとえば、ターミナルに。これは Firefox の window.dump と同様に worker のためのものである。

ほかで実装されているメソッド

WindowBase64.atob()
base-64 エンコーディングを使用してエンコードされた文字データをデコードする。
WindowBase64.btoa()
バイナリデータ文字列から base-64 エンコードされた ASCII 文字列を生成する。
WindowTimers.clearInterval()
WindowTimers.setInterval() を使用して設定された繰り返し処理をキャンセルする。
WindowTimers.clearTimeout()
WindowTimers.setTimeout() を使用して設定された繰り返し処理をキャンセルする。
ImageBitmapFactories.createImageBitmap() (en-US)
異なるさまざまな画像ソースを受け入れ、ImageBitmap (en-US) を解決する Promise (en-US) を返す。
GlobalFetch.fetch()
リソースの取得プロセスを開始する。
WindowTimers.setInterval()
X ミリ秒ごとの処理実行をスケジューリングする。
WindowTimers.setTimeout()
遅延処理を設定する。

コード内で WorkerGlobalScope に直接アクセスすることはありません; しかし、DedicatedWorkerGlobalScopeSharedWorkerGlobalScope のような特定のグローバルスコープからプロパティやメソッドが継承されています。たとえば、worker にほかのスクリプトをインポートして、次の 2 行を使用して worker スコープの navigator オブジェクトのコンテンツを表示できます:

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

ノート: worker スクリプトのグローバルスコープは、実行している worker グローバルスコープ(DedicatedWorkerGlobalScope やそのほか)と WorkerGlobalScope からメソッドやプロパティなどを継承している すべての worker グローバルスコープで有効であるため、上記のように親オブジェクトを指定しなくとも実行できます。

仕様

仕様 状態 コメント
HTML Living Standard
WorkerGlobalScope の定義
現行の標準 Unknown から変更なし。
Service Workers 草案 caches を定義。
Unknown
WorkerGlobalScope の定義
不明 初期定義。

ブラウザ実装状況

BCD tables only load in the browser

関連項目