/
868.txt
69 lines (54 loc) · 3.67 KB
/
868.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
* 仕様書
[REFS[
- [7] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-05-14 09:55:50 +09:00]]) <https://html.spec.whatwg.org/#custom-element-reactions>
]REFS]
* 意味
[8] [DFN[[RUBYB[カスタム要素反応]@en[custom element reaction]]]] [SRC[>>7]] は、
[[カスタム要素]]に関する変化を通知する[[コールバック関数]]です。
次のものがあります。
[FIG(list members)[
: [[カスタム要素構築器]] :
[[要素の格上げ]]で実行されます。
: [CODE[connectedCallback]] :
[[要素]]が[[接続][節点の接続]]された際に実行されます。
: [CODE[disconnectedCallback]] :
[[要素]]が[[切断][節点の切断]]された際に実行されます。
: [CODE[attributeChangedCallback]] :
[[要素]]の[[内容属性]]の[[変更操作][属性の変更]]が発生した際に実行されます。
]FIG]
[9] [[カスタム要素構築器]]は、[[カスタム要素定義]]を作成する際に、
必ず指定します ([CODE(DOMm)@en[define]] [[メソッド]]の第2引数)。
それ以外は、[[カスタム要素構築器]]の [CODE[prototype]]
[[オブジェクト]]の[[プロパティー]]として、必要に応じて指定できます。
[10] [[カスタム要素反応]]は、該当する [[DOM]] 操作が発生した時に実行されます。
複数の変更が発生する場合であっても、一連の変更がすべて適用された後、
呼び出し元に[[戻る]]直前にまとめて実行されます。
[[著者]]視点では [[DOM]] 操作中に同期的に呼び出されていますが、
[[利用者エージェント]]視点では [[DOM]] 操作直後に非同期的に呼び出しているので、
[[著者]]は [[DOM]] 操作の途中段階にアクセスすることはできませんし、
[[利用者エージェント]]は [[DOM]] 操作中の不安定な状態を[[著者]]に晒さずに済みます。
[11] ある[[カスタム要素]]について、ある操作群に対する[[カスタム要素反応]]群は、
必ず同じ順序で実行されることが保証されます。
複数の[[カスタム要素]]全体については ([[カスタム要素反応]]内で他の[[要素]]を変更する場合があるので)
保証されません。 [SRC[>>7]]
[12] [[カスタム要素構築器]]は、その時点ではまだ[F[カスタム][カスタム要素]]でない[[要素]]について実行されます。
それ以外の[[コールバック]]は、[[カスタム要素]]について実行されます。
* 歴史
[1] [CITE@en[Add custom elements to HTML · whatwg/html@6e7eaa4]]
([TIME[2016-04-26 18:23:20 +09:00]] 版)
<https://github.com/whatwg/html/commit/6e7eaa4bd2912965fd83766f99f984f249531f3a>
[2] [CITE@en[Formalize custom element reactions · whatwg/html@27aa7bc]]
([TIME[2016-04-26 18:49:03 +09:00]] 版)
<https://github.com/whatwg/html/commit/27aa7bc4fa6f168654a8c858f0773e611f679b39>
[3] [CITE@en[Add ''''''[''''''CEReactions'''''']'''''' annotations to mutating methods · whatwg/dom@3cd02d1]]
([TIME[2016-04-26 19:05:42 +09:00]] 版)
<https://github.com/whatwg/dom/commit/3cd02d139c159a31fbb400e03932652c72fc7812>
[4] [CITE@en[Integrate callback invocation with IDL · Issue #186 · w3c/webcomponents]]
([TIME[2016-04-26 19:14:21 +09:00]] 版)
<https://github.com/w3c/webcomponents/issues/186>
[5] [CITE@en[DOM XSLTProcessor - WHATWG Wiki]]
([TIME[2016-04-21 04:49:20 +09:00]] 版)
<https://wiki.whatwg.org/wiki/DOM_XSLTProcessor>
[6] [CITE@en[Add ''''''[''''''CEReactions'''''']'''''' annotation to as · w3c/preload@b632000]]
([TIME[2016-05-01 14:00:58 +09:00]] 版)
<https://github.com/w3c/preload/commit/b632000d8bd32118d3b7833b7c0caca044329072>