| 1 |
apache |
1.2 |
#en
|
| 2 |
|
|
This specification defines an API that allows Web application authors to
|
| 3 |
|
|
spawn background workers running scripts in parallel to their main page.
|
| 4 |
|
|
This allows for thread-like operation with message-passing as the
|
| 5 |
|
|
coordination mechanism.
|
| 6 |
|
|
#ja
|
| 7 |
|
|
この仕様書は、 Web アプリケーションで主たる頁と並列に背景労働者スクリプトを動作させることを可能とする
|
| 8 |
|
|
API を定義します。
|
| 9 |
|
|
これによって、メッセージ・パッシングによるスレッド的操作を協調機構として利用できるようになります。
|
| 10 |
|
|
|
| 11 |
|
|
#en
|
| 12 |
|
|
The current focus is in developing a first draft proposal.
|
| 13 |
|
|
#ja
|
| 14 |
|
|
現在の焦点は、第1案の開発です。
|
| 15 |
|
|
|
| 16 |
|
|
#pattern
|
| 17 |
apache |
1.4 |
<span class=secno>* </span>Requirements
|
| 18 |
|
|
#ja
|
| 19 |
|
|
<span class=secno>$1 </span>要件
|
| 20 |
|
|
|
| 21 |
|
|
#en
|
| 22 |
|
|
This specification aims to address the following use cases and
|
| 23 |
|
|
requirements:
|
| 24 |
|
|
#ja
|
| 25 |
|
|
この仕様書は、次に示す利用事例と要件に取り組むことを目指します。
|
| 26 |
|
|
|
| 27 |
|
|
#en
|
| 28 |
|
|
Background workers: A Web application needs to keep its data
|
| 29 |
|
|
synchronised with the server, both sending updates to the server and
|
| 30 |
|
|
receiving updates from the server, including handling buffering of
|
| 31 |
|
|
updates for when the application goes offline. The code to do this would
|
| 32 |
|
|
ideally be independent of the UI code.
|
| 33 |
|
|
#ja
|
| 34 |
|
|
背景労働者: Web アプリケーションは、そのデータを鯖と同期しておく必要があります。
|
| 35 |
|
|
これは、鯖への更新の送信と鯖からの更新の両方を含み、
|
| 36 |
|
|
アプリケーションがオフラインとなった時の更新のバッファリングの取扱いも含みます。
|
| 37 |
|
|
そのための符号は利用者界面の符号とは独立しているのが理想でしょう。
|
| 38 |
|
|
|
| 39 |
|
|
#en
|
| 40 |
|
|
URLs: Workers should be spawned from URLs, not from strings, since
|
| 41 |
|
|
script rarely has access to its own source.
|
| 42 |
|
|
#ja
|
| 43 |
|
|
URL: 労働者は、文字列からではなく、 URL から生み出される[[SHOULD:べきです]]。
|
| 44 |
|
|
スクリプトはその出典へのアクセスを滅多に有しないからです。
|
| 45 |
|
|
|
| 46 |
|
|
#en
|
| 47 |
|
|
Message queuing: Messages sent to a worker before the worker has
|
| 48 |
|
|
initialised should not be lost.
|
| 49 |
|
|
#ja
|
| 50 |
|
|
メッセージ・キューイング: 労働者が初期化される前に送信されたメッセージが失われるべきでは[[SHOULD NOT:ありません]]。
|
| 51 |
|
|
|
| 52 |
|
|
#en
|
| 53 |
|
|
Workers should have access to timers.
|
| 54 |
|
|
#ja
|
| 55 |
|
|
労働者はタイマーへのアクセスを有する[[SHOULD:べきです]]。
|
| 56 |
|
|
|
| 57 |
|
|
#en
|
| 58 |
|
|
Workers should have access to the network.
|
| 59 |
|
|
#ja
|
| 60 |
|
|
労働者はネットワークへのアクセスを有する[[SHOULD:べきです]]。
|
| 61 |
|
|
|
| 62 |
|
|
#en
|
| 63 |
|
|
Workers should be able to use libraries.
|
| 64 |
|
|
#ja
|
| 65 |
|
|
労働者はライブラリを使える[[SHOULD:べきです]]。
|
| 66 |
|
|
|
| 67 |
|
|
#en
|
| 68 |
|
|
Implementations should not have to expose <code>Node</code> or
|
| 69 |
|
|
<code>Document</code> objects to workers.
|
| 70 |
|
|
#ja
|
| 71 |
|
|
実装は労働者に <code>Node</code> オブジェクトや
|
| 72 |
|
|
<code>Document</code> オブジェクトを晒さなければならない[[SHOULD NOT:べきではありません]]。
|
| 73 |
|
|
|
| 74 |
|
|
#en
|
| 75 |
|
|
Workers should not share anything with the outside world. The objects
|
| 76 |
|
|
representing the worker in the worker itself and in the context that
|
| 77 |
|
|
created the worker should be different, for instance.
|
| 78 |
|
|
#ja
|
| 79 |
|
|
労働者は外界と何も共有する[[SHOULD NOT:べきではありません]]。
|
| 80 |
|
|
例えば、労働者自体の中で労働者を現すオブジェクトと労働者を作成した文脈で労働者を表すオブジェクトは異なる[[SHOULD:べきです]]。
|
| 81 |
|
|
|
| 82 |
|
|
#en
|
| 83 |
|
|
Shared workers: Multiple instances of the same Web application would
|
| 84 |
|
|
want to keep just one connection back to the server.
|
| 85 |
|
|
#ja
|
| 86 |
|
|
共有労働者: 同じ Web アプリケーションの複数の実現値は鯖に対する接続を1つだけ維持したいでしょう。
|
| 87 |
|
|
|
| 88 |
|
|
#en
|
| 89 |
|
|
Capabilities granting: It should be possible for code running in one
|
| 90 |
|
|
iframe to negotiate a connection to another iframe, with that connection
|
| 91 |
|
|
granting certain rights (e.g. adding to an address book but not reading
|
| 92 |
|
|
from it).
|
| 93 |
|
|
#ja
|
| 94 |
|
|
能力保証: ある iframe で動作している符号が他の iframe と何らかの権限 (例えば、
|
| 95 |
|
|
住所録へは追加するが読まない) を保証する接続を折衝することが可能である[[SHOULD:べきです]]。
|
| 96 |
|
|
|
| 97 |
|
|
#en
|
| 98 |
|
|
Delegation: It should be possible for one worker to spawn another
|
| 99 |
|
|
worker and efficiently delagate a request to that worker, without the
|
| 100 |
|
|
caller being aware of the delagate and without the original worker having
|
| 101 |
|
|
to proxy all the messages.
|
| 102 |
|
|
#ja
|
| 103 |
|
|
委譲: ある労働者が別の労働者を生み出し、呼び出し元が委譲に気づかず、
|
| 104 |
|
|
かつ元の労働者がすべてのメッセージを仲介せずに、
|
| 105 |
|
|
当該労働者に対する要求を効率的に委譲できる[[SHOULD:べきです]]。
|
| 106 |
apache |
1.10 |
|
| 107 |
|
|
#en
|
| 108 |
|
|
Objects that implement the <code><a
|
| 109 |
|
|
href="#windowworker">WindowWorker</a></code> interface must also implement
|
| 110 |
|
|
the <code>Window</code> interface (and thus also the
|
| 111 |
|
|
<code>WindowTimers</code> and <code><a
|
| 112 |
|
|
href="#windowworkercreators">WindowWorkerCreators</a></code> interfaces)
|
| 113 |
|
|
and the <code>EventTarget</code> interface.
|
| 114 |
|
|
#ja
|
| 115 |
|
|
<code><a
|
| 116 |
|
|
href="#windowworker">WindowWorker</a></code> 界面を実装するオブジェクトは、
|
| 117 |
|
|
<code>Window</code> 界面 (引いては、 <code>WindowTimers</code> 界面と <code><a
|
| 118 |
|
|
href="#windowworkercreators">WindowWorkerCreators</a></code> 界面も)
|
| 119 |
|
|
と <code>EventTarget</code> 界面を実装しなければ[[MUST:なりません]]。
|
| 120 |
|
|
|
| 121 |
|
|
#en
|
| 122 |
|
|
The <dfn id=name title=dom-windowworker-name><code>name</code></dfn>
|
| 123 |
|
|
attribute must return the value it was assigned when the <code><a
|
| 124 |
|
|
href="#windowworker">WindowWorker</a></code> object was created by the "<a
|
| 125 |
|
|
href="#run-a">run a worker</a>" algorithm.
|
| 126 |
|
|
#ja
|
| 127 |
|
|
<dfn id=name title=dom-windowworker-name><code>name</code></dfn>
|
| 128 |
|
|
属性は、<code><a
|
| 129 |
|
|
href="#windowworker">WindowWorker</a></code> オブジェクトが「<a
|
| 130 |
|
|
href="#run-a">労働者を起動</a>」する算法で作成された時に割り当てられた値を返さなければ[[MUST:なりません]]。
|
| 131 |
|
|
|
| 132 |
|
|
#en
|
| 133 |
|
|
The <dfn id=closing
|
| 134 |
|
|
title=dom-windowworker-closing><code>closing</code></dfn> attribute must
|
| 135 |
|
|
return false until the "<a href="#kill-a">kill a worker</a>" processing
|
| 136 |
|
|
model defined below sets it to true.
|
| 137 |
|
|
#ja
|
| 138 |
|
|
<dfn id=closing
|
| 139 |
|
|
title=dom-windowworker-closing><code>closing</code></dfn>
|
| 140 |
|
|
属性は、後述の「<a href="#kill-a">労働者を殺す</a>」処理モデルが真に設定するまで、
|
| 141 |
|
|
偽を返さなければ[[MUST:なりません]]。
|
| 142 |
|
|
|
| 143 |
|
|
#pattern
|
| 144 |
|
|
<span class=secno>* </span>The queue of events
|
| 145 |
|
|
#ja
|
| 146 |
|
|
<span class=secno>$1 </span>事象の待ち行列
|
| 147 |
|
|
|
| 148 |
|
|
#en
|
| 149 |
|
|
Each <code><a href="#windowworker">WindowWorker</a></code> object is
|
| 150 |
|
|
asssociated with a <dfn id=queue>queue of events</dfn>, which is initially
|
| 151 |
|
|
empty.
|
| 152 |
|
|
#ja
|
| 153 |
|
|
各 <code><a href="#windowworker">WindowWorker</a></code> オブジェクトは、
|
| 154 |
|
|
<dfn id=queue>事象の待ち行列</dfn> (はじめは空) と関連付けられています。
|
| 155 |
|
|
|
| 156 |
|
|
#en
|
| 157 |
|
|
An event in the queue can be a DOM event or a timeout callback.
|
| 158 |
|
|
#ja
|
| 159 |
|
|
待ち行列中の事象は、 DOM 事象か小休止呼び戻しとなることができます。
|
| 160 |
|
|
|
| 161 |
|
|
#pattern
|
| 162 |
|
|
<span class=secno>* </span>Processing model
|
| 163 |
|
|
#ja
|
| 164 |
|
|
<span class=secno>$1 </span>処理モデル
|