From 006562a295054a38130684995d40171ab7d23624 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Fri, 30 Jul 2021 12:42:53 +0900 Subject: Web/API/Worker および onerror を更新 (#1565) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - orphaned/Web/API/AbstractWorker を削除 - AbstractWorker インターフェイスの onerror プロパティを Worker へ移動 - Worker インターフェイスおよび onerror プロパティのドキュメントを2021/07/16時点の英語版に同期 --- files/ja/web/api/worker/index.html | 106 ++++++++++++++--------------- files/ja/web/api/worker/onerror/index.html | 40 +++++++++++ 2 files changed, 93 insertions(+), 53 deletions(-) create mode 100644 files/ja/web/api/worker/onerror/index.html (limited to 'files/ja/web') diff --git a/files/ja/web/api/worker/index.html b/files/ja/web/api/worker/index.html index 81c0ce6942..61367031ad 100644 --- a/files/ja/web/api/worker/index.html +++ b/files/ja/web/api/worker/index.html @@ -10,100 +10,100 @@ tags: - Web Workers - Worker - Workers +browser-compat: api.Worker translation_of: Web/API/Worker --- -

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

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

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

+

WorkerWeb Workers API のインターフェイスです。スクリプトで生成することができるバックグラウンドタスクを表し、作成元にメッセージを送り返すことができます。ワーカーは Worker("path/to/worker/script") コンストラクターを呼び出すことで生成することができます。

-

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

+

ワーカーは同じ親ページの同一 オリジン 内でホストされている限り、他の新しいワーカーを生成することができます (注: 入れ子になったワーカーは WebKit では未実装です)。

-

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

+

利用可能なすべてのインターフェイスと関数 がすべて Worker の中で利用できるとは限りません。ワーカーはネットワーク通信のために {{domxref("XMLHttpRequest")}} を使うことができますが、 responseXML 属性と channel 属性は常に null になります。 (fetch も利用可能であり、このような制限はありません。)

-

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

- -

コンストラクター

+

コンストラクター

{{domxref("Worker.Worker", "Worker()")}}
-
特有の URL で動作する専用ワーカーのインスタンスを生成することができます。また、Blobs を用いてワーカーを生成することもできます。
+
指定された URLにあるスクリプトを実行する専用ウェブワーカーのインスタンスを生成します。また、 Blob URL を用いてワーカーを生成することもできます。
-

プロパティ

+

プロパティ

-

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

+

親インターフェイスである {{domxref("EventTarget")}} からプロパティを継承しています。

-

イベントハンドラー

+

イベントハンドラー

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

メソッド

+

メソッド

-

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

+

親である {{domxref("EventTarget")}} からメソッドを継承しています。

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

+

イベント

+ +
+
message
+
ワーカーの親が、そのワーカーからメッセージを受信したときに発行されます。
+ onmessage プロパティからも利用できます。
+
messageerror
+
Worker オブジェクトが シリアライズ解除できないというメッセージを受け取ったときに発行されます。
+ onmessageerror プロパティからも利用できます。
+
rejectionhandled
+
{{jsxref("Promise")}} が拒絶されるたびに発行されます。拒絶を処理するハンドラーがあるかどうかは問いません。
+ onrejectionhandled イベントハンドラープロパティからも利用できます。
+
unhandledrejection
+
拒絶を処理するハンドラーのない {{jsxref("Promise")}} が拒絶されたときに発行されます。
+ onunhandledrejection イベントハンドラープロパティからも利用できます。
+
-

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

+

-
var myWorker = new Worker('worker.js');
-var first = document.querySelector('#number1');
-var second = document.querySelector('#number2');
+

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

+ +
var myWorker = new Worker('/worker.js');
+var first = document.querySelector('input#number1');
+var second = document.querySelector('input#number2');
 
 first.onchange = function() {
-  myWorker.postMessage([first.value,second.value]);
+  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')}} 
+

完全な例は、 Basic dedicated worker example (専用ワーカーを実行) を参照してください。

-

ブラウザー実装状況

+

仕様書

-

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

+{{Specifications}} +

ブラウザーの互換性

+

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

-

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

+

{{Compat}}

-

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

+

オリジンをまたいだワーカーのエラーの動作

-

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

+

古いバージョンのブラウザーでオリジンをまたいでワーカーのスクリプトを読み込もうとすると、 SecurityError が発生していました。最近は、 {{event("error")}} イベントが発行されるようになりました。この処理方法について詳しくは オリジンをまたいだワーカーの読み込みが、例外を発生させるのではなく error イベントを発生されるようになりました。サンドボックス化された iframe が許可されなくなりました をご覧ください。

-

関連情報

+

関連情報

diff --git a/files/ja/web/api/worker/onerror/index.html b/files/ja/web/api/worker/onerror/index.html new file mode 100644 index 0000000000..2864938ea0 --- /dev/null +++ b/files/ja/web/api/worker/onerror/index.html @@ -0,0 +1,40 @@ +--- +title: Worker.onerror +slug: Web/API/Worker/onerror +tags: + - API + - Worker + - EventHandler + - Property + - Reference + - Web Workers + - Workers + - onerror +browser-compat: api.Worker.onerror +translation_of: Web/API/Worker/onerror +--- +
{{APIRef("Web Workers API")}}
+ +

onerror は {{domxref("Worker")}} インターフェイスのプロパティで、 イベントハンドラーを表し、 {{event("error")}} イベントが発行されたときに呼び出される関数を表します。

+ +

構文

+ +
myWorker.onerror = function(event) { ... };
+ +

+ +

以下の例では {{domxref("Worker")}} オブジェクトを {{domxref("Worker.Worker", "Worker()")}} コンストラクターを使用して生成し、結果のオブジェクトに onerror ハンドラーを設定しています。

+ +
var myWorker = new Worker('worker.js');
+
+  myWorker.onerror = function(event) {
+    console.log('There is an error with your worker!');
+}
+ +

仕様書

+ +{{Specifications}} + +

ブラウザーの互換性

+ +

{{Compat}}

-- cgit v1.2.3-54-g00ecf