Kinopyo Blog

プログラマとしてRuby, Rails, iPhone, iPad,Macなどなどと向き合う日々のログポース

jQuery1.3.2 bind時にnamespaceを使うとIE6ではメモリリーク

2010年04月04日 by kinopyo | jQuery


表題の通り、IE6 + jQuery1.3.2の状態でbindする時に

jQueryのnamespaceを使うと確実にメモリリークが発生します。

jQuery1.4.2では発生しないことを確認しました。

メモリリークが発生するコード

$("#foo").bind("change.abc", function(){});

上記”change.abc”のabcがnamespaceです。

それをなくすことでメモリリークは解消されます。

イベントハンドラの中身とは関係ありません。

メモリリークは発生しない

$("#foo").bind("change", function(){});

これはjQueryのbugとして上げられましたが、

完全に修正できなかったみたいです。


#4241 (Namespaced events cause memory leaks)
– jQuery Core
– Bug Tracker

当時の担当者のコメントを見ると

I had a really difficult time getting a reliable test case to verify this actually solves the memory leak. r6321 appears to have fixed this issue

「時間ないからちゃんとテストしてない、r6321の対応で解決できたように見える」と、

ずいぶん適当な回答ですよね。。。

Tags: , , ,

You can leave a response, or trackback from your own site.

関連記事

  • http://topsy.com/trackback?utm_source=pingback&utm_campaign=L2&url=http://www.kinopyo.com/blog/jquery1-3-2-memory-leak-when-bind-with-namespace-in-ie6 Tweets that mention jQuery1.3.2 bind時にnamespaceを使うとIE6ではメモリリーク | Kinopyo’s Blog — Topsy.com

    [...] This post was mentioned on Twitter by 肉球ざんまい™, kinopyo. kinopyo said: jQuery1.3.2 bind時にnamespaceを使うとIE6ではメモリリーク http://bit.ly/9qwjYF [...]