MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

WorkerGlobalScope

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

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

プロパティ

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

標準プロパティ

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

非標準プロパティ

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

イベントハンドラ

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

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

メソッド

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

標準メソッド

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

非標準メソッド

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

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

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

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

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

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

仕様

仕様 状態 コメント
WHATWG HTML Living Standard
WorkerGlobalScope の定義
現行の標準 Web Workers から変更なし。
Service Workers 草案 caches を定義。
Web Workers
WorkerGlobalScope の定義
勧告改訂案 初期定義。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 4 3.5 (1.9.1) 10 10.6 4
ononline, onoffline (有) 29 (29) ? ? ?
console (有) 29 (29)[1]
30 (30)
? ? ?
performance (有) 34 (34) ? ? ?
caches 40 ? 未サポート ? 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート ? (有) 1.0 (1.9.1) 1.0.1 10 11.5 5.1
ononline, onoffline ? (有) 29.0 (29)[1]
30.0 (30)
1.4 ? ? ?
console ? (有) 29.0 (29) 1.4 ? ? ?
performance ? (有) 34.0 (34) 2.1 ? ? ?
caches (有) (有) (有) (有) (有) (有) (有)

[1] Gecko 29 ではこれを WorkerConsole として実装しています。バージョン 30 からは通常の Console を使用しています。

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,