/
276.txt
99 lines (75 loc) · 5.85 KB
/
276.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
* 仕様書
[REFS[
- [10] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-11-21 03:08:35 +09:00]] 版) <https://html.spec.whatwg.org/#processing-model-9>
]REFS]
* 処理モデル
[8] [[イベントループ]]は、[[ワーカー]]でなく[[閲覧文脈]]に関するものであるなら、
ループ各回の最後に[RUBYB[[[レンダリングの更新]]]@en[update the rendering]]処理を行います
[SRC[>>10]]。
;; [11] [[タスク]]や[[マイクロタスク]]の後に実行されます。
[12] 当該[[イベントループ]]に関連付けられた [CODE(DOMi)@en[[[Document]]]]
が対象となります。対象となる [CODE(DOMi)@en[[[Document]]]] のリストでは、
[[入れ子閲覧文脈]]の [CODE(DOMi)@en[[[Document]]]] は[[親閲覧文脈]]の
[CODE(DOMi)@en[[[Document]]]] より後となります。また同じ[[閲覧文脈]]の[[入れ子閲覧文脈]]の
[CODE(DOMi)@en[[[Document]]]] 同士は、[[閲覧文脈包含器]]の[[木順]]となります。
それ以外の順序は任意とされています。 [SRC[>>10]]
[124] [[イベントループ]]で毎回[[レンダリング]]の更新を行う必要はなく、
いつ更新するかの正確なタイミングは実装に任されています。
特定の更新頻度よりも多く実行しないように間引いても構いませんし、
表示されていない[[最上位閲覧文脈]]の更新を著しく低頻度にすることもできます。
ある[[最上位閲覧文脈]]の更新を行わない場合、その[[最上位閲覧文脈]]に属する[[閲覧文脈]]の
[CODE(DOMi)@en[[[Document]]]] を >>12 のリストから除去します。 [SRC[>>20]]
;; [205] [[レンダリング]]の更新は[[一時停止]]でも行われますが、 >>52
は[[イベントループ]]における更新 (>>28) を指しています。
[52] [[ワーカー]]でないメインの[[イベントループ]]では、レンダリングの更新は1回の繰り返しの最後のステップです。
このタイミングで具体的に何を行うかは明確に定義されているわけではありませんが、次のものが含まれています。
[FIG(list)[
- [53] [[canvas]] における[[利用者へ通知]]
([[タスク]]内で同期的に行なって良いしこのタイミングで行なっても良いし、行わなくても良い)
-- [204] <http://www.whatwg.org/specs/web-apps/current-work/#inform>
- [113] 外部参照を含む[[スタイルシート]]に[[スクリプト]]がアクセスできるようになるのは、
最初のレンダリング更新のタイミング以降です。
-- <http://www.whatwg.org/specs/web-apps/current-work/#style-sheet-ready>
]FIG]
[REFS[
- [20] [CITE@en[Web Applications 1.0 r8782 Reframe the 'update the rendering' step so we can add substeps.]] ([TIME[2014-09-18 05:42:00 +09:00]] 版) <https://html5.org/r/8782>
]REFS]
* 関係が不明瞭なもの
[9] [[イベントループ]]の明文化以前から存在する機能は、
[[イベントループ]]との相互作用が明文化されていないものがあります。
[63] [[fetch]] が[[画像]]や [[XML]] の[[タスク]]を複数生成する時に、
それを[[インクリメンタル・レンダリング]]する処理モデルは定義されていません。
[194] [CODE(HTMLe)@en[[[blink]]]] [[要素]]や [[CSS]] の [CODE(CSS)@en[[[text-decoration]]: [[blink]]]]
では[[点滅]]が発生します。
[195] [CODE(HTMLe)@en[[[marquee]]]] の[[アニメーション]]は [[HTML Standard]] で定義されていますが、
[[イベントループ]]との関係には言及がありません。
[193] [[レンダリング]]を行うタイミングは[[イベントループ]]で定義されていますので、
[[レンダリング]]の変化はその時に発生するのでしょうが、
[[ハードウェア]]に[[動画]]の再生を任せている場合など、
独自のタイミングで更新が発生するかもしれません。
[64] [[アニメーションGIF]]の[[レンダリング]]との関係は定義されていません。
ただし同じ[[URL]]の[[アニメーションGIF]]は、最初に読み込まれたものの再生と同期する、
と [[HTML]] により規定されています。
@@ [197] [[CSS Animations]], [[CSS Transitions]], [[SMIL Animations]], [[SVG]]
* 歴史
[1] [CITE[Define fullscreen in terms of "animation frame tasks" and reduce the amo... · 5187282 · whatwg/fullscreen]]
( ([TIME[2014-07-31 07:28:54 +09:00]] 版))
<https://github.com/whatwg/fullscreen/commit/5187282e5fd24a1c4ff0164d444e1bfc2bdf44ef>
[2] [CITE@en[Animation frame task]]
( ([[Anne van Kesteren]] 著, [TIME[2014-07-31 00:29:07 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2014Jul/0586.html>
[3] [CITE@en[Bug 26440 – Allow fullscreenchange events to be synchronized with animation frames]]
( ([TIME[2014-07-31 14:28:12 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26440>
[4] [CITE@en[Re: Animation frame task]]
( ([[Elliott Sprehn]] 著, [TIME[2014-08-22 12:37:46 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2014Aug/0365.html>
[5] [CITE@en[Bug 26636 – We need to flush out step 8 of the event loop processing model per http://lists.w3.org/Archives/Public/www-dom/2014JulSep/0091.html and other emails in that thread]]
( ([TIME[2014-08-24 02:30:54 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26636>
[6] [CITE@en[Make list of fullscreenElements during animation frame task https://www.... · 13e267c · whatwg/fullscreen]]
( ([TIME[2014-08-27 02:50:42 +09:00]] 版))
<https://github.com/whatwg/fullscreen/commit/13e267c9bf275b645d4e7652e3acbc16f3dc5efb>
[7] [CITE@en[Bug 26839 – Integrate "Timing control for script-based animations" spec into HTML]]
( ([TIME[2014-11-22 00:51:57 +09:00]] 版))
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=26839>