<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <dfn><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">インターフェイス</anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">専用ワーカー</anchor>を作成し、通信するための <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">API</anchor> を提供するものです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>一般については<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>の項を参照。</comment-p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2015-05-06 10:42:35 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#worker">https://html.spec.whatwg.org/#worker</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite>, <time>2021-04-12T15:12:42.000Z</time>, <time>2021-04-13T08:02:29.360Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#dedicated-worker-agent">https://html.spec.whatwg.org/#dedicated-worker-agent</anchor-external></li></ul></refs></section><section><h1><code class="DOMi" xml:lang="en">Worker</code> インターフェイス</h1><section><h1>状態</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EventTarget</anchor></code> の状態に加えて、次の状態があります。<figure class="list members"><dl><dt>関連付けられた<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor></dt><dd></dd><dt>暗黙の <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MessagePort</anchor></code></dt><dd></dd></dl></figure></p></section><section><h1>構築子</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構築子</anchor>は、次のようにしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。<figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>が指定されたものとして解釈します。<figure class="list members"><dl><dt><var>番地</var></dt><dd><code class="DOMi" xml:lang="en">USVString</code> (必須)</dd><dt><var>オプション群</var></dt><dd><code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WorkerOptions</anchor></code> (省略可能)</dd></dl></figure></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>の方針次第で <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SecurityError</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>て停止しても構いません。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <var>外側設定群</var>を、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現職設定群オブジェクト</anchor>に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <var>ワーカーURL</var>を、
<var>番地</var>を<var>外側設定群</var>に対して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">構文解析<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">URLの構文解析</title></anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <var>ワーカーURL</var>が失敗なら、<ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <code class="DOMe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SyntaxError</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">投げ</anchor>て停止します。</li></ol></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <var>ワーカー</var>を、新しい <code class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Worker</anchor></code> に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <var>外側ポート</var>を、
<var>所有者</var>を<var>外側設定群</var>として<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">新しい<code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en">MessagePort</code>オブジェクトを作成</anchor>した結果に設定します。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <var>外側ポート</var>を<var>ワーカー</var>と関連付けます。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <var>外側ポート</var>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">出荷</anchor>します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>になし</src></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <var>ワーカー</var>を返します。</li></ol></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>の方針とは、例えばこのページでは<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>を認めない、
といったような指定を想定している <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src> ようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 更に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">並列に</anchor>、次のようにしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;2</anchor-internal></src>。<figure class="steps"><ol><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカを走らせます<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">run a worker</title></anchor>。<figure class="list members middle"><dl><dt><var>ワーカー</var></dt><dd><var>ワーカー</var></dd><dt><var>URL</var></dt><dd><var>ワーカーURL</var></dd><dt><var>外側設定群</var></dt><dd><var>外側設定群</var></dd><dt><var>外側ポート</var></dt><dd><var>外側ポート</var></dd><dt><var>オプション群</var></dt><dd><var>オプション群</var></dd></dl></figure></li></ol></figure></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ワーカー</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">コンストラクター</anchor>は、他に
<code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SharedWorker</anchor></code> と <code xmlns="http://www.w3.org/1999/xhtml" class="DOMi" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ServiceWorker</anchor></code> があります。</comment-p></section></section><section><h1><code class="DOMi" xml:lang="en">DedicatedWorkerGlobalScope</code> インターフェイス</h1><section><h1>状態</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <code class="DOMi" xml:lang="en">WorkerGlobalScope</code> 参照。</p></section><section><h1>メンバー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <code class="DOMi" xml:lang="en">WorkerGlobalScope</code> 参照。</p></section></section><section><h1>専用ワーカーエージェント</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> 
<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ruby xmlns="http://www.w3.org/1999/xhtml">専用<rt>せんよう</rt></ruby>ワーカーエージェント<rt xmlns="http://www.w3.org/1999/xhtml">dedicated worker agent</rt></rubyb></dfn>は、
<code>DedicatedWorkerGlobalScope</code> を1つ含む<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">エージェント</anchor>です。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;32</anchor-internal></src></p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite xml:lang="en">Fix #337: perform origin checks for workers in Fetch · whatwg/html@e86b2e4</cite> (<time>2015-11-19 16:22:56 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/e86b2e4b8fdef45404c61c1a85c40da7edf8b561">https://github.com/whatwg/html/commit/e86b2e4b8fdef45404c61c1a85c40da7edf8b561</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">Rewrite global object initialization to delegate to ES · whatwg/html@cf0355d</cite>
(<time>2015-12-16 20:12:41 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5">https://github.com/whatwg/html/commit/cf0355d7e0e229b98f7fbd51b8c7608010c787f5</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">Add module workers · whatwg/html@e3a5bb7</cite>
(<time>2016-02-15 23:15:08 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/e3a5bb757f64374c37d8c4528c01298463ef0b2a">https://github.com/whatwg/html/commit/e3a5bb757f64374c37d8c4528c01298463ef0b2a</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite xml:lang="en">Make script fetching more correct with regard to request destinations · whatwg/html@6dc9c9e</cite>
(<time>2016-02-29 18:11:43 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/6dc9c9e1efcc3122294fb015e4a4eea66456a611">https://github.com/whatwg/html/commit/6dc9c9e1efcc3122294fb015e4a4eea66456a611</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite xml:lang="en">Use outside settings object to fetch workers</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-05-11 19:57:24 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/4e2b0066cb88fdc7ac65cc6e6a7eb40ac39418bd">https://github.com/whatwg/html/commit/4e2b0066cb88fdc7ac65cc6e6a7eb40ac39418bd</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite xml:lang="en">Use USVString for all URLs</cite>
( (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-05-20 22:02:29 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/018b983b77b2cd908f6d00100e7e0abe893dd2c3">https://github.com/whatwg/html/commit/018b983b77b2cd908f6d00100e7e0abe893dd2c3</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <cite xml:lang="en">Use current instead of incumbent + entry in worker constructors</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2016-07-07 01:46:49 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/485c76a84611d094839b3b60d13e6e997594800b">https://github.com/whatwg/html/commit/485c76a84611d094839b3b60d13e6e997594800b</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">Define agents and agent clusters</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">annevk</anchor>著, <time>2017-04-26 18:46:01 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/4db86547f1184e7ceb4f1009cb3bef28101eda4f">https://github.com/whatwg/html/commit/4db86547f1184e7ceb4f1009cb3bef28101eda4f</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <cite xml:lang="en">Add a name to dedicated workers, for debugging</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">domenic</anchor>著, <time>2017-05-12 12:43:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/3bb652169741d5dd94d7f1b390f6491e38d640cb">https://github.com/whatwg/html/commit/3bb652169741d5dd94d7f1b390f6491e38d640cb</anchor-external></p></section></body></html>