zorioの日記 このページをアンテナに追加 RSSフィード

2007-09-18

[] やっぱりIEメモリリークは直ってなかった

またAjaxianから。

http://ajaxian.com/archives/ies-memory-leak-fix-greatly-exaggerated

IEがやってる事はonunloadでDOMを辿って循環参照してる所を消してるだけ。

なので、DOMツリー上にないelementが循環参照していた場合はやっぱりリークする。

実例。

http://grimpoteuthis.org/example/spew.html

4つほど事例があるけど、動的に作成したelementをappendChildしてないとか、または明示的にelem.parentNode.removeChild(elem)してるとかで、DOMを辿っても循環参照しているelementにたどり着けないようになっている。

上の例のような、動的にelementを作っておいてappendChildしないコードを書くことはあんまり無いかもしれないけど、elem.innerHTML=newHtmlで新しい内容に置き換えて、書き換えられてDOMから辿れなくなった古いelementが循環参照しててメモリリークなんてのは絶対ある。

もう1回がんばれIEチーム。後は頼んだ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/zorio/20070918/1190135017