jQuery1.3.2 bind時にnamespaceを使うとIE6ではメモリリーク
表題の通り、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として上げられましたが、 完全に修正できなかったみたいです。 http://dev.jquery.com/ticket/4241で 当時の担当者のコメントを見ると
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の対応で解決できたように見える」と、 ずいぶん適当な回答ですよね。。。