* 仕様書
[REFS[
- [2] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版)
- [6] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版)
- [9] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版)
- [11] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-11-16 20:26:18 +09:00]] 版)
]REFS]
* 暗示強参照
[3] 既存の[[オブジェクト]]を返す[[IDL属性]]からは、その[[オブジェクト]]への[DFN[[RUBYB[[[暗示強参照]]]@en[implied strong reference]]]]があります。
[SRC[>>2]]
[EG[
[4] 例えば [CODE(JS)@en[[[document]].[[location]]]] [[属性]]は [CODE(DOMi)@en[[[Location]]]]
[[オブジェクト]]を持っているので、これはすなわち、当該 [CODE(DOMi)@en[[[Document]]]]
[[オブジェクト]] [WEAK[(の [CODE(DOMa)@en[[[location]]]] [[属性]])]] から [CODE(DOMi)@en[[[Location]]]]
[[オブジェクト]]への[[強参照]]があることになります。
]EG]
[EG[
[5] [CODE(DOMi)@en[[[Document]]]] からその[[子孫節点]]へは [WEAK[([CODE(DOMa)@en[[[childNodes]]]] [[属性]]などを通じて)]]
[[強参照]]があり、また各[[節点]]から [CODE(DOMi)@en[[[Document]]]] へは
[WEAK[([CODE(DOMa)@en[[[ownerDocument]]]] [[属性]]などを通じて)]] [[強参照]]があります。
]EG]
* 閲覧文脈
[13] [[利用者エージェント]]は[[最上位閲覧文脈]]に対して[[強参照]]を持っています。 [SRC[>>11]]
[12] [[閲覧文脈]]は、その [CODE(DOMi)@en[[[Document]]]] 群とその [CODE(DOMi)@en[[[WindowProxy]]]]
に対して[[強参照]]を持っています。 [SRC[>>11]]
[14] [CODE(DOMi)@en[[[Document]]]] はその [CODE(DOMi)@en[[[Window]]]] に対して[[強参照]]を持っています。逆に
[CODE(DOMi)@en[[[Window]]]] は [CODE(DOMa)@en[[[document]]]] [[属性]]を通じて[[暗示強参照]]を持っています。 [SRC[>>11]]
[15] [CODE(DOMi)@en[[[Window]]]] は [CODE(DOMi)@en[[[window]]]] など、
[CODE(DOMi)@en[[[Document]]]] は [CODE(DOMi)@en[[[defaultView]]]] などを通じて
[CODE(DOMi)@en[[[WindowProxy]]]] への[[暗示強参照]]を持っています。 [SRC[>>11]]
[16] [[スクリプト]]はその[[閲覧文脈]]と[[文書]]に対して[[強参照]]を持っています。 [SRC[>>11]]
* 媒体要素
[7] [[媒体要素]]は、それに対するすべての[[参照]]が削除されただけの理由で[RUBYB[[[再生]]]@en[playing]]を停止しては[['''なりません''']]。
それ以上[RUBYB[[[音声]]]@en[audio]]を再生できない状態になった時、当該[[媒体要素]]は[[ごみ収集]]して[['''構いません''']]。
[SRC[>>6]]
[8] [[要素]]に対して明示的に[[参照]]が存在しておらず、まだ[RUBYB[活性的に再生]@en[actively playing]]されていなくとも、
[[音声]]の[[再生]]のために存在し続けることがあります。例えばまだ[[参照]]されている[[現在媒体制御器]]があって[RUBYB[再生再開]@en[unpause]]できるかもしれませんし、
あるいは再生再開されていても[[バッファ]]待ちのため [[stall]] 中かもしれません。
[SRC[>>6]]
;; [10] 環境によっては同時再生数の制限が厳しいかもしれませんから、
再生が終わったらすべての[[参照]]を確実に削除するなど配慮することが特に好ましいとされています。 [SRC[>>9]]
* 歴史
[1] [[Web]] における[[ごみ収集]] ([[garbage collection]]) は [[HTML Living Standard]] ではじめて明示的に規定され、
その後他の仕様でも定義されるようになりました。