WorkerGlobalScope
Web Workers API の WorkerGlobalScope
インターフェースは、いずれかの worker のスコープを表すインターフェースです。worker はブラウジングコンテクストを持ちません; このスコープには、通常 Window
オブジェクトによって伝えられた情報が含まれます — この場合、イベントハンドラやコンソール、関連する WorkerNavigator
(en-US) オブジェクトのことです。ぞれぞれの WorkerGlobalScope
は独自のイベントループを持ちます。
このインターフェースは通常、 それぞれの work タイプによって特化されます: dedicated workers のための DedicatedWorkerGlobalScope
と shared workers のための SharedWorkerGlobalScope
、ServiceWorker のための ServiceWorkerGlobalScope
です。self
プロパティはそれぞれのコンテキストに特化したスコープを返します。
プロパティ
このインターフェースは、 EventTarget
インターフェースから継承したプロパティと、 WindowTimers
、 WindowBase64
、 WindowEventHandlers
からのプロパティを実装しています。
標準プロパティ
WorkerGlobalScope.caches
読取専用- 現在のコンテキストに関連した
CacheStorage
オブジェクトを返す。このオブジェクトは、オフラインで使用するために資産を保存することやリクエストに対してカスタムレスポンスを生成するなどの service worker の機能を使用できる。 - worker に関連した
WorkerNavigator
(en-US) を返す。これは特定の navigator オブジェクト、主にブラウジングスコープのNavigator
ではなく、worker に適合する。 WorkerGlobalScope.self
読取専用WorkerGlobalScope
自身の参照を返す。ほとんどの場合、DedicatedWorkerGlobalScope
やSharedWorkerGlobalScope
、ServiceWorkerGlobalScope
のような特定のスコープである。WorkerGlobalScope.location
(en-US) 読取専用- worker に関連した
WorkerLocation
を返す。これは特定の location オブジェクト、主にブラウジングスコープのLocation
ではなく、worker に適合する。
非標準プロパティ
WorkerGlobalScope.performance
(en-US) 読取専用- work に関連した
Performance
を返す。これは、プロパティとメソッドのサブセットのみが worker で利用できることを除いて、通常の performance オブジェクトである。 WorkerGlobalScope.console
読取専用 Non-Standard- worker に関連した
Console
オブジェクトを返す。
イベントハンドラ
このインターフェースは、EventTarget
インターフェースから継承したイベントハンドラと WindowTimers
と WindowBase64
のイベントハンドラを実装しています。
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) Non-Standardclose
イベントが発生したときに呼び出されるコードを表すevent handler
。WorkerGlobalScope.onrejectionhandled
Non-StandardPromise
の rejection イベントを制御するためのイベントハンドラ。WorkerGlobalScope.onunhandledrejection
Non-Standard- 制御されていない
Promise
の rejection イベントのためのイベントハンドラ。
メソッド
このインターフェースは、EventTarget
インターフェースから併称したメソッドとWindowTimers
、 WindowBase64
、 WindowEventHandlers
、 GlobalFetch
のメソッドを実装しています。
標準メソッド
WorkerGlobalScope.close()
(en-US)- 効果的に特定のスコープを閉じ、
WorkerGlobalScope
のイベントループにキューされているタスクを破棄する。 WorkerGlobalScope.importScripts()
- worker のスコープに 1 つ以上のスクリプトをインポートする。カンマ区切りで任意の数を指定できる。例:
importScripts('foo.js', 'bar.js');
非標準メソッド
WorkerGlobalScope.dump()
(en-US) Non-Standard- 標準出力にメッセージを記述できる — たとえば、ターミナルに。これは 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
に直接アクセスすることはありません; しかし、DedicatedWorkerGlobalScope
や SharedWorkerGlobalScope
のような特定のグローバルスコープからプロパティやメソッドが継承されています。たとえば、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
関連項目
- そのほかのグローバルオブジェクトインターフェース:
Window
、DedicatedWorkerGlobalScope
、SharedWorkerGlobalScope
、ServiceWorkerGlobalScope
- そのほかの Worker 関連インターフェース:
Worker
、WorkerLocation
、WorkerGlobalScope
、ServiceWorkerGlobalScope
- Web Worker を使用する