[2] イベントループにおける処理の単位をタスクといいます。
[3] タスクは、 イベントのディスパッチ、 構文解析、 コールバックの呼び出し、 fetch 結果の処理、 DOM 操作に対する反応といった、 色々な作業を担当するアルゴリズムです >>1。
[5] Webブラウザーの大部分の処理は、タスク (の集合) として定義されています。
[8] フォームは planned navigation としてタスクを持つことがあります。
[11] タスクは、構造体です >>1。 次の状態を持ちます。
[6] タスクは、いずれかのイベントループに (タスクキューなどに追加されることにより) 所属し、実行されるものです >>1。基本的には作成されたイベントループに所属し、 他のイベントループに移動することはありませんが、 ポートメッセージキューのタスクのような例外もあります。
[9] 実装戦略によっては、タスクに他の最適化のための情報を付与する必要があるかもしれません。 例えば WebSocketメッセージの受信では、必要な I/O 処理のための資源が確保されるまで、 他のタスクを実行することが望ましいとされています。これの実現のためには、 イベントループがタスクキューからタスクを選んで実行するに当たり、 タスクがどのような資源を必要としており、それが直ちに利用可能であるか否かを判定しなければなりません。
[20]
タスクの一種にマイクロタスクがあります。
かつては名前の似た別物とされていたこともありますが、
今では、少なくても仕様書上は、
マイクロタスクはタスクの一種とされています。
[4] タスク・キューは、タスクの順序付きのリストです >>1。 タスクはタスク・キューに追加されることによって順に実行されていきます。
[18] Webブラウザーにおける非同期な処理は、すべてがタスクとして説明されているわけではありません。 資源の fetch の後の非同期な処理などは、安定状態に処理を再開するものとされています。
[23] タスクは特定のイベント・ループにより処理されることを意図したものです。 タスクに関連付けられた文書についてのタスクを処理するイベント・ループが1つあって、 その文書のタスクはすべてそのイベント・ループで処理されます。 >>1
[10] Integrate with the Long Tasks spec (npm1, , ) https://github.com/whatwg/html/commit/425a67ba81288305fce86736a0772f84c3f30eed
[13] Editorial: rigorize tasks and task queuing (domenic, , ) https://github.com/whatwg/html/commit/f4e29076caad1779336adea40ac2125d6d1c9496
[22] Add "queue an element task" algorithm (dtapuska, , ) https://github.com/whatwg/html/commit/a9e1d2ad5a7569010c685b271965ae4a3a34a64b