diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/api/worker | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/web/api/worker')
-rw-r--r-- | files/ja/web/api/worker/index.html | 109 | ||||
-rw-r--r-- | files/ja/web/api/worker/onmessageerror/index.html | 50 | ||||
-rw-r--r-- | files/ja/web/api/worker/terminate/index.html | 107 | ||||
-rw-r--r-- | files/ja/web/api/worker/worker/index.html | 87 |
4 files changed, 353 insertions, 0 deletions
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 +--- +<p>{{APIRef("Web Workers API")}}</p> + +<p><a href="/ja/docs/Web/API/Web_Workers_API">Web Workers API</a> の <strong><code>Worker</code></strong> インターフェイスはバックグラウンドで行われるタスクを実行することができ、そのタスクは簡単に生成され、かつ作成元にメッセージを送り返すことができます。<code>Worker()</code> コンストラクターを呼び出しワーカースレッドを走らせるスクリプトを特定してあげるだけでワーカーオブジェクトを作成することができます。</p> + +<p>ワーカーは同じ親ページの同一 <a href="/ja/docs/Web/Security/Same-origin_policy">オリジン</a> 内でホストされている限り、他の新しいワーカーを発生させる可能性があります (注記: 入れ子の worker は <a href="https://bugs.webkit.org/show_bug.cgi?id=22723">WebKit で未実装です</a>)。それにくわえて、ワーカーはネットワーク I/O のための <a href="/ja/docs/DOM/XMLHttpRequest" title="XMLHttpRequest"><code>XMLHttpRequest</code></a> を使用することもあります。なお、<code>XMLHttpRequest</code> の <code>responseXML</code> と <code>channel</code> 属性は常に <code>null</code> を返す決まりです。</p> + +<p>必ずしも <a href="/ja/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers" title="Functions and classes available to Web Workers">すべてのインターフェイスと関数</a> が <code>Worker</code> のスクリプトに関連づいているわけではありません。</p> + +<p>Firefox において、ワーカーをエクステンションを用いて <a href="/ja/docs/js-ctypes" title="js-ctypes">js-ctypes</a> にアクセスしたい場合、{{ domxref("ChromeWorker") }} オブジェクトを代わりに使用しなくてはいけません。</p> + +<h2 id="Constructors" name="Constructors">コンストラクター</h2> + +<dl> + <dt>{{domxref("Worker.Worker", "Worker()")}}</dt> + <dd>特有の URL で動作する専用ワーカーのインスタンスを生成することができます。また、<a href="/ja/docs/Web/API/Blob">Blobs</a> を用いてワーカーを生成することもできます。</dd> +</dl> + +<h2 id="Properties" name="Properties">プロパティ</h2> + +<p><em>{{domxref("EventTarget")}} より継承しています。また、{{domxref("AbstractWorker")}} のメソッドを定義しています。</em></p> + +<h3 id="Event_handlers" name="Event_handlers">イベントハンドラー</h3> + +<dl> + <dt>{{domxref("AbstractWorker.onerror")}}</dt> + <dd><code>error</code> タイプの {{domxref("ErrorEvent")}} がワーカーを通して発生するとき、常に {{ domxref("EventListener") }} を呼びます。これは {{domxref("AbstractWorker")}} からの継承メソッドです。</dd> + <dt>{{domxref("Worker.onmessage")}}</dt> + <dd><code>message</code> タイプの {{domxref("MessageEvent")}} がワーカーを通して発生するときは常に {{ domxref("EventListener") }} を呼びます。例えば、{{domxref("DedicatedWorkerGlobalScope.postMessage")}} を経由して親要素のドキュメントにメッセージが送信されます。メッセージは {{domxref("MessageEvent.data", "data")}} プロパティに保存されます。</dd> + <dt>{{domxref("Worker.onmessageerror")}}</dt> + <dd>{{event("messageerror")}} イベントが発生したときに呼び出されるコードを表す {{domxref("EventHandler")}} です。</dd> +</dl> + +<h2 id="Methods" name="Methods">メソッド</h2> + +<p><em>{{domxref("EventTarget")}} より継承しています。また、{{domxref("AbstractWorker")}} のメソッドを定義しています。</em></p> + +<dl> + <dt>{{domxref("Worker.postMessage()")}}</dt> + <dd>ワーカーの内部スコープにメッセージを送ることができます。このメッセージは、<strong>いかなる</strong> JavaScript のオブジェクトでも送ることができます。</dd> + <dt>{{domxref("Worker.terminate()")}}</dt> + <dd>ワーカーを直ちに終了させます。実行中の処理は完了を待たずに終了させられます。ServiceWorker インスタンスはこのメソッドを備えていません。</dd> +</dl> + +<h2 id="Example" name="Example">例</h2> + +<p>次のコード例では、{{domxref("Worker.Worker", "Worker()")}} コンストラクターを用いて {{domxref("Worker")}} オブジェクトを生成しています。</p> + +<pre class="brush: js">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'); +}</pre> + +<p>完全なサンプルは次のリンクより御覧ください:<a class="external external-icon" href="https://github.com/mdn/simple-web-worker">Basic dedicated worker example</a> (<a class="external external-icon" href="http://mdn.github.io/simple-web-worker/">run dedicated worker</a>)。</p> + +<h2 id="Specifications" name="Specifications">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">策定状況</th> + <th scope="col">コメント</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "#worker", "Worker")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> + +<p>worker の種類に応じてサポート状況が異なります。詳しくは、それぞれの worker のページをご覧ください。</p> + + + +<p>{{Compat("api.Worker")}}</p> + +<h3 id="Cross-origin_worker_error_behaviour" name="Cross-origin_worker_error_behaviour">クロスオリジン worker エラーの動作</h3> + +<p>古いバージョンのブラウザーでクロスオリジンの worker のスクリプトを読み込もうとすると、<code>SecurityError</code> が発生していました。仕様が変わったため、新しいブラウザーでは {{event("error")}} イベントが発生します。この処理方法について詳しくは <a href="https://www.fxsitecompat.com/docs/2016/loading-cross-origin-worker-now-fires-error-event-instead-of-throwing-worker-in-sandboxed-iframe-no-longer-allowed/">クロスオリジンの Worker 読み込みが例外の代わりに error イベントを発生させるようになり、サンドボックス化された iframe 内の Worker が禁止されます</a> をご覧ください。</p> + +<h2 id="See_also" name="See_also">関連情報</h2> + +<ul> + <li><a href="https://developer.mozilla.org/ja/docs/Web/Guide/Performance/Using_web_workers">Web Workers の使い方</a></li> + <li><a href="/ja/DOM/Worker/Functions_available_to_workers" title="https://developer.mozilla.org/En/DOM/Worker/Functions_available_to_workers">Web Workers で使用可能な関数一覧</a></li> + <li>他の Workers: {{ domxref("SharedWorker") }} 、 <a href="/ja/docs/Web/API/ServiceWorker_API">ServiceWorker</a>.</li> + <li>非標準の Gecko 専用 Workers: {{ domxref("ChromeWorker") }}(拡張機能で使用)</li> +</ul> 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 +--- +<div>{{APIRef("HTML DOM")}}</div> + +<p>{{domxref("Worker")}} インターフェイスの <code><strong>onmessageerror</strong></code> イベントハンドラは {{domxref("EventListener")}} であり、 <code>messageerror</code> 型の {{domxref("MessageEvent")}} が <code>Worker</code> インスタンスで発生する度に呼び出されます。 — つまり {{glossary("Deserialization", "deserialized")}} できないメッセージを受け取ったときです。</p> + +<p>{{AvailableInWorkers}}</p> + +<h2 id="構文">構文</h2> + +<pre class="syntaxbox notranslate">Worker.onmessageerror = function() { ... };</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様</th> + <th scope="col">ステータス</th> + <th scope="col">備考</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', '#handler-worker-onmessageerror', 'onmessageerror')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザーの互換性">ブラウザーの互換性</h2> + + + +<p>{{Compat("api.Worker.onmessageerror")}}</p> + +<h2 id="関連項目">関連項目</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Channel_Messaging_API/Using_channel_messaging">Using channel messaging</a></li> +</ul> 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 +--- +<p>{{APIRef("Web Workers API")}}</p> + +<p>{{domxref("Worker")}}インターフェイスの<code><strong>terminate()</strong></code>メソッドは{{domxref("Worker")}}を即座に停止します。これはworkerに対してその動作を終了する機会を提供するものではありません。単純に即時停止をします。</p> + +<h2 id="構文">構文</h2> + +<pre class="brush: js">myWorker.terminate();</pre> + +<h3 id="引数">引数</h3> + +<p>無し。</p> + +<h3 id="返り値">返り値</h3> + +<p>Void.</p> + +<h2 id="例">例</h2> + +<p>次のコードでは{{domxref("Worker")}}オブジェクトを{{domxref("Worker.Worker", "Worker()")}} コンストラクタで作成したあと、すぐに停止しています。</p> + +<pre class="brush: js">var myWorker = new Worker("worker.js"); + +myWorker.terminate(); +</pre> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "#dom-worker-terminate", "Worker.postMessage()")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>No change from {{SpecName("Web Workers")}}.</td> + </tr> + <tr> + <td>{{SpecName('Web Workers', "#dom-worker-terminate", "Worker.postMessage()")}}</td> + <td>{{Spec2('Web Workers')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザ互換性">ブラウザ互換性</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Basic support</td> + <td>4</td> + <td>3.5</td> + <td>10.0</td> + <td>10.6</td> + <td>4</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>Firefox OS (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>4.4</td> + <td>3.5</td> + <td>1.0.1</td> + <td>10.0</td> + <td>11.5</td> + <td>5.1</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="関連項目">関連項目</h2> + +<p>The {{domxref("Worker")}} interface it belongs to.</p> 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 +--- +<p>{{APIRef("Web Workers API")}}</p> + +<p><code><strong>Worker()</strong></code> コンストラクターは引数の URL で指定されたスクリプトを実行する {{domxref("Worker")}} オブジェクトを作成します。このスクリプトは <a href="/Same_origin_policy_for_JavaScript" title="Same origin policy for JavaScript">同一生成元ポリシー</a> (SOP) に従わなければいけません。</p> + +<p>引数の URL が無効な構文だったり SOP に違反したりしている場合、<code>SECURITY_ERR</code> 型の {{domxref("DOMException")}} を返します。</p> + +<div class="note"> +<p><strong>注記</strong>: data URI が SOP に違反するかどうかをブラウザーベンダーの間で合意されていません。Gecko 10.0 {{geckoRelease("10.0")}} とそれより後のリリースでは data URI を受け入れますが、すべてのブラウザーでは、そうならない場合があります。</p> +</div> + +<h2 id="構文">構文</h2> + +<pre class="brush: js">var myWorker = new Worker(<em>aURL</em>, <em>options</em>);</pre> + +<h3 id="引数">引数</h3> + +<dl> + <dt><em>aURL</em></dt> + <dd>Worker オブジェクトが後に実行するスクリプトの URL の {{domxref("USVString")}} です。SOP に従っていなければいけません。</dd> + <dt><em>options</em> {{optional_inline}}</dt> + <dd>オブジェクトを作成するときに設定できるオプションプロパティを持つオブジェクトです。以下のプロパティを使用できます: + <ul> + <li><code>type</code>: 作成する worker のタイプを指定する {{domxref("DOMString")}}。使用できる値は <code>classic</code> または <code>module</code> です。指定しない場合の既定値は <code>classic</code> です。</li> + <li><code>credentials</code>: worker を使用するためのクレデンシャルのタイプを指定する {{domxref("DOMString")}} です。使用できる値は <code>omit</code>、<code>same-origin</code>、<code>include</code> です。指定しない場合、または worker が <code>classic</code> タイプである場合はの既定値は <code>omit</code> (クレデンシャルは不要) です。</li> + <li><code>name</code>: worker のスコープを表す {{domxref("DedicatedWorkerGlobalScope")}} を識別する名前を示す {{domxref("DOMString")}} です。これは主に、デバッグで役に立ちます。</li> + </ul> + </dd> +</dl> + +<h3 id="Exceptions" name="Exceptions">例外</h3> + +<ul> + <li>ドキュメントが worker の開始を許可されていない場合に、<code>SecurityError</code> が発生します。</li> + <li>スクリプトのひとつの MIME タイプが <code>text/csv</code>, <code>image/*</code>, <code>video/*</code>, or <code>audio/*</code> である場合に <code>NetworkError</code> が発生します。これは常に <code>text/javacript</code> であるべきです。</li> + <li><em>aURL</em> をパースできない場合に <code>SyntaxError</code> が発生します。</li> +</ul> + +<h2 id="例">例</h2> + +<p>次のコードスニペットは <code>Worker()</code> コンストラクターを使って {{domxref("Worker")}} オブジェクトを作成し、続いてそのオブジェクトの使い方を表しています。</p> + +<pre class="brush: js">var myWorker = new Worker('worker.js'); + +first.onchange = function() { + myWorker.postMessage([first.value,second.value]); + console.log('Message posted to worker'); +}</pre> + +<p>完全な例を見るには、<a class="external external-icon" href="https://github.com/mdn/simple-web-worker">Basic dedicated worker example</a> (<a class="external external-icon" href="http://mdn.github.io/simple-web-worker/">run dedicated worker</a>) を参照してください。</p> + +<h2 id="仕様">仕様</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + <th scope="col">策定状況</th> + <th scope="col">コメント</th> + </tr> + <tr> + <td>{{SpecName('HTML WHATWG', "#dom-worker", "Worker()")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td> </td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザー互換性">ブラウザー互換性</h2> + + + +<p>{{Compat("api.Worker.Worker")}}</p> + +<h2 id="関連項目">関連項目</h2> + +<p>{{domxref("Worker")}} インタフェースに属しています。</p> |