次のjQueryコードは、任意のメモリリーク生じた場合、私は疑問に思って:私の理解のためにこのjQueryコードスニペットはメモリリークを引き起こしますか?
$(function() {
var parent=$('table#mytable tbody').get(0);
$('tr:last', parent).click(function(){...});
});
を$('tr:last', parent)
は、DOMオブジェクトである最後の行ですが、匿名関数では、クロージャはこのDOMオブジェクトを持っています、 DOMオブジェクトとjsオブジェクトの間に循環参照があります。
しかし、実際に漏れがあると、マニングが発行した人気のある本 "jQuery in Action"にこの種のコードがたくさんあることがわかります。 jQueryコーディングで有害な "ベストプラクティス"ですか?
しかし、私の理解が正しいかどうかはわかりません。私はあなたのコメントと訂正を願っています。ありがとう!
firefoxにこのようなリークがありますか? – jscoot
ファイアフォックスにはこのようなリークだけがありません。つまりこれがあります。 –
質問はjQueryに関するもので、少なくとも2009年1月にリリースされたjQueryバージョンの場合、このコードは漏れません。この答えは間違っています。私の正しい答えは以下を見てください。 – umassthrower