From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/worker/index.html | 109 ++++++++++++++++++++++ files/ja/web/api/worker/onmessageerror/index.html | 50 ++++++++++ files/ja/web/api/worker/terminate/index.html | 107 +++++++++++++++++++++ files/ja/web/api/worker/worker/index.html | 87 +++++++++++++++++ 4 files changed, 353 insertions(+) create mode 100644 files/ja/web/api/worker/index.html create mode 100644 files/ja/web/api/worker/onmessageerror/index.html create mode 100644 files/ja/web/api/worker/terminate/index.html create mode 100644 files/ja/web/api/worker/worker/index.html (limited to 'files/ja/web/api/worker') diff --git a/files/ja/web/api/worker/index.html b/files/ja/web/api/worker/index.html new file mode 100644 index 0000000000..98b9b728c3 --- /dev/null +++ b/files/ja/web/api/worker/index.html @@ -0,0 +1,109 @@ +--- +title: Worker +slug: Web/API/Worker +tags: + - API + - DOM + - Interface + - JavaScript + - Reference + - Web Workers + - Worker + - Workers +translation_of: Web/API/Worker +--- +

{{APIRef("Web Workers API")}}

+ +

Web Workers APIWorker インターフェイスはバックグラウンドで行われるタスクを実行することができ、そのタスクは簡単に生成され、かつ作成元にメッセージを送り返すことができます。Worker() コンストラクターを呼び出しワーカースレッドを走らせるスクリプトを特定してあげるだけでワーカーオブジェクトを作成することができます。

+ +

ワーカーは同じ親ページの同一 オリジン 内でホストされている限り、他の新しいワーカーを発生させる可能性があります (注記: 入れ子の worker は WebKit で未実装です)。それにくわえて、ワーカーはネットワーク I/O のための XMLHttpRequest を使用することもあります。なお、XMLHttpRequestresponseXMLchannel 属性は常に null を返す決まりです。

+ +

必ずしも すべてのインターフェイスと関数Worker のスクリプトに関連づいているわけではありません。

+ +

Firefox において、ワーカーをエクステンションを用いて js-ctypes にアクセスしたい場合、{{ domxref("ChromeWorker") }} オブジェクトを代わりに使用しなくてはいけません。

+ +

コンストラクター

+ +
+
{{domxref("Worker.Worker", "Worker()")}}
+
特有の URL で動作する専用ワーカーのインスタンスを生成することができます。また、Blobs を用いてワーカーを生成することもできます。
+
+ +

プロパティ

+ +

{{domxref("EventTarget")}} より継承しています。また、{{domxref("AbstractWorker")}} のメソッドを定義しています。

+ +

イベントハンドラー

+ +
+
{{domxref("AbstractWorker.onerror")}}
+
error タイプの {{domxref("ErrorEvent")}} がワーカーを通して発生するとき、常に {{ domxref("EventListener") }} を呼びます。これは {{domxref("AbstractWorker")}} からの継承メソッドです。
+
{{domxref("Worker.onmessage")}}
+
message タイプの {{domxref("MessageEvent")}} がワーカーを通して発生するときは常に {{ domxref("EventListener") }} を呼びます。例えば、{{domxref("DedicatedWorkerGlobalScope.postMessage")}} を経由して親要素のドキュメントにメッセージが送信されます。メッセージは {{domxref("MessageEvent.data", "data")}} プロパティに保存されます。
+
{{domxref("Worker.onmessageerror")}}
+
{{event("messageerror")}} イベントが発生したときに呼び出されるコードを表す {{domxref("EventHandler")}} です。
+
+ +

メソッド

+ +

{{domxref("EventTarget")}} より継承しています。また、{{domxref("AbstractWorker")}} のメソッドを定義しています。

+ +
+
{{domxref("Worker.postMessage()")}}
+
ワーカーの内部スコープにメッセージを送ることができます。このメッセージは、いかなる JavaScript のオブジェクトでも送ることができます。
+
{{domxref("Worker.terminate()")}}
+
ワーカーを直ちに終了させます。実行中の処理は完了を待たずに終了させられます。ServiceWorker インスタンスはこのメソッドを備えていません。
+
+ +

+ +

次のコード例では、{{domxref("Worker.Worker", "Worker()")}} コンストラクターを用いて {{domxref("Worker")}} オブジェクトを生成しています。

+ +
var myWorker = new Worker('worker.js');
+var first = document.querySelector('#number1');
+var second = document.querySelector('#number2');
+
+first.onchange = function() {
+  myWorker.postMessage([first.value,second.value]);
+  console.log('Message posted to worker');
+}
+ +

完全なサンプルは次のリンクより御覧ください:Basic dedicated worker example (run dedicated worker)。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様書策定状況コメント
{{SpecName('HTML WHATWG', "#worker", "Worker")}}{{Spec2('HTML WHATWG')}} 
+ +

ブラウザー実装状況

+ +

worker の種類に応じてサポート状況が異なります。詳しくは、それぞれの worker のページをご覧ください。

+ + + +

{{Compat("api.Worker")}}

+ +

クロスオリジン worker エラーの動作

+ +

古いバージョンのブラウザーでクロスオリジンの worker のスクリプトを読み込もうとすると、SecurityError が発生していました。仕様が変わったため、新しいブラウザーでは {{event("error")}} イベントが発生します。この処理方法について詳しくは クロスオリジンの Worker 読み込みが例外の代わりに error イベントを発生させるようになり、サンドボックス化された iframe 内の Worker が禁止されます をご覧ください。

+ +

関連情報

+ + diff --git a/files/ja/web/api/worker/onmessageerror/index.html b/files/ja/web/api/worker/onmessageerror/index.html new file mode 100644 index 0000000000..6c94a56b93 --- /dev/null +++ b/files/ja/web/api/worker/onmessageerror/index.html @@ -0,0 +1,50 @@ +--- +title: Worker.onmessageerror +slug: Web/API/Worker/onmessageerror +tags: + - API + - Property + - Reference + - Worker + - onmessageerror + - イベントハンドラ +translation_of: Web/API/Worker/onmessageerror +--- +
{{APIRef("HTML DOM")}}
+ +

{{domxref("Worker")}} インターフェイスの onmessageerror イベントハンドラは {{domxref("EventListener")}} であり、 messageerror 型の {{domxref("MessageEvent")}} が Worker インスタンスで発生する度に呼び出されます。 — つまり  {{glossary("Deserialization", "deserialized")}} できないメッセージを受け取ったときです。

+ +

{{AvailableInWorkers}}

+ +

構文

+ +
Worker.onmessageerror = function() { ... };
+ +

仕様

+ + + + + + + + + + + + + + +
仕様ステータス備考
{{SpecName('HTML WHATWG', '#handler-worker-onmessageerror', 'onmessageerror')}}{{Spec2('HTML WHATWG')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.Worker.onmessageerror")}}

+ +

関連項目

+ + diff --git a/files/ja/web/api/worker/terminate/index.html b/files/ja/web/api/worker/terminate/index.html new file mode 100644 index 0000000000..ea5d426f9b --- /dev/null +++ b/files/ja/web/api/worker/terminate/index.html @@ -0,0 +1,107 @@ +--- +title: Worker.terminate() +slug: Web/API/Worker/terminate +translation_of: Web/API/Worker/terminate +--- +

{{APIRef("Web Workers API")}}

+ +

{{domxref("Worker")}}インターフェイスのterminate()メソッドは{{domxref("Worker")}}を即座に停止します。これはworkerに対してその動作を終了する機会を提供するものではありません。単純に即時停止をします。

+ +

構文

+ +
myWorker.terminate();
+ +

引数

+ +

無し。

+ +

返り値

+ +

Void.

+ +

+ +

次のコードでは{{domxref("Worker")}}オブジェクトを{{domxref("Worker.Worker", "Worker()")}} コンストラクタで作成したあと、すぐに停止しています。

+ +
var myWorker = new Worker("worker.js");
+
+myWorker.terminate();
+
+ +

仕様

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('HTML WHATWG', "#dom-worker-terminate", "Worker.postMessage()")}}{{Spec2('HTML WHATWG')}}No change from {{SpecName("Web Workers")}}.
{{SpecName('Web Workers', "#dom-worker-terminate", "Worker.postMessage()")}}{{Spec2('Web Workers')}}Initial definition.
+ +

ブラウザ互換性

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support43.510.010.64
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari Mobile
Basic support4.43.51.0.110.011.55.1
+
+ +

関連項目

+ +

The {{domxref("Worker")}} interface it belongs to.

diff --git a/files/ja/web/api/worker/worker/index.html b/files/ja/web/api/worker/worker/index.html new file mode 100644 index 0000000000..b4be4846f7 --- /dev/null +++ b/files/ja/web/api/worker/worker/index.html @@ -0,0 +1,87 @@ +--- +title: Worker() +slug: Web/API/Worker/Worker +tags: + - API + - Constructor + - Reference + - Web Workers + - Worker +translation_of: Web/API/Worker/Worker +--- +

{{APIRef("Web Workers API")}}

+ +

Worker() コンストラクターは引数の URL で指定されたスクリプトを実行する {{domxref("Worker")}} オブジェクトを作成します。このスクリプトは 同一生成元ポリシー (SOP) に従わなければいけません。

+ +

引数の URL が無効な構文だったり SOP に違反したりしている場合、SECURITY_ERR 型の {{domxref("DOMException")}} を返します。

+ +
+

注記: data URI が SOP に違反するかどうかをブラウザーベンダーの間で合意されていません。Gecko 10.0 {{geckoRelease("10.0")}} とそれより後のリリースでは data URI を受け入れますが、すべてのブラウザーでは、そうならない場合があります。

+
+ +

構文

+ +
var myWorker = new Worker(aURL, options);
+ +

引数

+ +
+
aURL
+
Worker オブジェクトが後に実行するスクリプトの URL の {{domxref("USVString")}} です。SOP に従っていなければいけません。
+
options {{optional_inline}}
+
オブジェクトを作成するときに設定できるオプションプロパティを持つオブジェクトです。以下のプロパティを使用できます: +
    +
  • type: 作成する worker のタイプを指定する {{domxref("DOMString")}}。使用できる値は classic または module です。指定しない場合の既定値は classic です。
  • +
  • credentials: worker を使用するためのクレデンシャルのタイプを指定する {{domxref("DOMString")}} です。使用できる値は omitsame-origininclude です。指定しない場合、または worker が classic タイプである場合はの既定値は omit (クレデンシャルは不要) です。
  • +
  • name: worker のスコープを表す {{domxref("DedicatedWorkerGlobalScope")}} を識別する名前を示す {{domxref("DOMString")}} です。これは主に、デバッグで役に立ちます。
  • +
+
+
+ +

例外

+ + + +

+ +

次のコードスニペットは Worker() コンストラクターを使って {{domxref("Worker")}} オブジェクトを作成し、続いてそのオブジェクトの使い方を表しています。

+ +
var myWorker = new Worker('worker.js');
+
+first.onchange = function() {
+  myWorker.postMessage([first.value,second.value]);
+  console.log('Message posted to worker');
+}
+ +

完全な例を見るには、Basic dedicated worker example (run dedicated worker) を参照してください。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様書策定状況コメント
{{SpecName('HTML WHATWG', "#dom-worker", "Worker()")}}{{Spec2('HTML WHATWG')}} 
+ +

ブラウザー互換性

+ + + +

{{Compat("api.Worker.Worker")}}

+ +

関連項目

+ +

{{domxref("Worker")}} インタフェースに属しています。

-- cgit v1.2.3-54-g00ecf