
[70] 仕様上、特定の条件が満たされるまで[RUBY[待つ]@en[wait]]ことが求められている場合があります。
条件は[[イベント・ループ]]の状態であったり、[[利用者]]の操作であったり、
[[OS]] の状態であったり色々ですが、いずれにせよ単純な[[アルゴリズム]]の逐次実行とは異なる動作が起こります。

@@ 完全なリストがあると良いが多い

[FIG(list)[
- [101] [[encoding sniffing algorithm]]
-- [[利用者エージェント]]依存ながらも 500ms または 1024 バイトの早い方まで待つのがよいとされています
- [147] [CODE(HTML)@en[[[<input type=file>]]]] の[[活性化動作]]は、前回の実行が完了するまで待ったり、
[[利用者]]による[[ファイル]]の選択が終わるまで待ったりします。
- [148] [CODE(DOMe)@en[[[input]]]] [[イベント]]を [CODE(HTMLe)@en[[[input]]]] [[要素]]や [CODE(HTMLe)@en[[[textarea]]]]
[[要素]]で[[発火]]する[[タスク]]を[[キュー]]に入れる前に[[利用者]]の動作を適当に (例えば 100ms くらい) 待っても構いません。
- [153] [[start the [CODE(HTMLe)@en[track]] processing model]] の途中で待つことがあります。
- [174] [[スピン]] (>>17)
- [190] [[display steps]] 実行前に[[通知]]できるようになるまで待つ
-- [CITE@en-US[Notifications API Standard]] ([TIME[2014-02-11 16:20:34 +09:00]] 版) <http://notifications.spec.whatwg.org/#pending-notifications>
- [[update the image data]]
-- [[マイクロタスク]]をキューに入れる条件が達成されるまで待ちます
- [[セッション履歴イベントループ]]は、[[タスク]]がキューに入れられるまで待ちます。
- [[WebSocket接続の確立]]
- [[ワーカーを殺す]]際、[[利用者エージェント]]依存の時間待ちます。
]FIG]

[154] 「待つ」という語を使って定義されているものの、「待つ」を使わない単純な形に容易に読み替えられるもの:
[FIG(list)[
- [155] [CODE(JS)@en[[[navigator.languages]]]] の値が変化する場合の処理
]FIG]

;; タイマー (>>97) も参照してください。

* 他のタスクを待つ

[94] 次の[[算法]]では、途中の[[ステップ]]で別の[[タスク]]の完了を待ちます。

[FIG(list)[
- [92] [[resource fetch algorithm]]
- [93] [[resource selection algorithm]]
]FIG]

* Fetch を待つ

[141] 次の[[算法]]では、途中の[[ステップ]]で [[fetch]] の完了を待ちます。

[FIG(list)[
- [[navigate]]
- [142] [CODE(DOMm)@en[[[importScripts]]]]
- [191] [[display steps]]
-- [CITE@en-US[Notifications API Standard]] ([TIME[2014-02-11 16:20:34 +09:00]] 版) <http://notifications.spec.whatwg.org/#display-steps>
- [192] [[replace steps]]
-- [CITE@en-US[Notifications API Standard]] ([TIME[2014-02-11 16:20:34 +09:00]] 版) <http://notifications.spec.whatwg.org/#replace-steps>

@@
- [[XHR]] ([[async]] = false)
- [[document.load]] ([[async]] = false)
]FIG]

* タイマー

[97] いくつかの処理は、指定された時間が経過するのを待って実行されます。

;; 詳しくは[[時計][時計 (Web)]]を参照。


