/
314.txt
58 lines (45 loc) · 3.82 KB
/
314.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
* 仕様書
[REFS[
- [2] '''[CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#concept-appcache-init>'''
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#the-before-html-insertion-mode>
- [3] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#read-xml>
- [4] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#read-text>
- [5] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#read-media>
- [6] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#read-plugin>
- [7] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2014-08-06 23:12:09 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#read-ua-inline>
]REFS]
* 呼び出し
[8] この[[アルゴリズム]]は、[[HTML構文解析器]]または[[XML構文解析器]]によって[[根要素]]が[[文書に挿入]]される時
[SRC[>>1, >>3]] または [[navigate]] によってダミーの [CODE(DOMi)@en[[[Document]]]]
が作られた時 [SRC[>>4, >>5, >>6, >>7]] に呼び出されます。
[9] 次の場合には、指定された [[URL]] がこの[[アルゴリズム]]の[[入力]]である[[キャッシュマニフェスト]]として使われます。
[FIG(list)[
- [10] [[navigate]] 中の[[構文解析器]]から呼び出された
- [20] [[文書の番地]]について [[match service worker registration]] を実行したら、
null 以外が返された
- [11] [[根要素]]が [CODE(HTMLe)@en[[[html]]]] [[要素]]
- [12] その[[要素]]に [CODE(HTMLa)@en[[[manifest]]]] [[属性]]がある
- [13] その値が[[空文字列]]でない
- [14] その値を [[URLとして解決]]して失敗しない
]FIG]
;; [21] 仕様上 >>20 は [[HTML構文解析器]]にのみ適用され、[[XML構文解析器]]には適用されないことになっています。
それが意図通りなのかどうかは不明です。
[15] それ以外の場合は、[[キャッシュマニフェスト]]なしが[[入力]]となります。
* 処理の同期
[16] [[構文解析]]中の[[文書]]が [[AppCache]] 由来の場合には、
[[同期的]]に処理が行われます。
そうでなく[[キャッシュマニフェスト]]が指定されている場合は、
[[application cache download process]] が[[非同期的]]に実行されます。
[17] ダウンロード処理が実行される場合、 [[AppCache]]
が[[文書]]に関連付けられて有効になるタイミングは[[構文解析器]]の動作とは完全に独立しています。
[[構文解析器]]によって [CODE(HTMLe)@en[[[img]]]] [[要素]]などが挿入されたり、
[[スクリプト]]が実行されたりして [[fetch]] が発生したり、
あるいは ([[スクリプト]]、[[利用者]]、あるいは[[構文解析器]]自体により)
新たに [[navigate]] が発生したりする場合もありますが、
いずれにせよ、 [[AppCache]] がその際に使われるかどうかは予測不能です。
;; [[利用者エージェント]]が [[AppCache]] を使うか[[利用者]]の確認を得ることも認められています。
* 歴史
[REFS[
- [18] [CITE@en[Bypass appcache in favor of a service worker · whatwg/html@8d239dd]] ([TIME[2015-10-07 00:03:08 +09:00]] 版) <https://github.com/whatwg/html/commit/8d239ddca97d70312b5c341c540cf06c316bbd81>
]REFS]
[19] >>18 はなぜか[[HTML構文解析器]]のみ変更していて、[[XML構文解析器]]は変更されていません。