jQueryが選択可能でメモリリークが発生しています。どうすればこれを防ぐことができますか?私が紛失しているものはありますか?jqueryUIがメモリリークの原因となる選択可能
私は、jqueryの複数のインスタンスを使用する複雑なWebアプリケーションをUI選択可能です。私はメモリリークを追跡するためにsIEveを使用していましたが、リークの数がuiで選択可能なインスタンスの数に等しいことに気付きました。
私は考えることができる最小限の選択可能なものを使用する簡単なテストページを書きました。 sIEveでは、1つのメモリリークが発生しました(div#b)。ここで
はHTMLです:
<!DOCTYPE html>
<html>
<head><title>test leaks with selectable</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery-ui.js"></script>
<script type="text/javascript" src="testLeaks.js"></script>
</head>
<body>
<div id="b"></div>
</body>
</html>
そして、ここではtestleaks.jsです:
function begin() {
$('#b').selectable();
}
function unloadCleanup() {
$('#b').selectable('destroy');
$('#b').remove();
}
$(window).unload(unloadCleanup);
$(document).ready(begin);
私はすでにリークを見た後、私は唯一のunloadCleanup
と.unload
ハンドラが含まれています。それがあってもなくても違いはありません。
これは単にjquery-selectableをアクティブにするとメモリリークが発生するという証拠です。
次にIサブdivを含むようにtestleaks.htmlを変更:ふるいで
<div id="b">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
を、Iは、ページをロードし、サブdiv要素のいずれかを選択しました。結果として生じるリークの数は、選択可能なdiv自体に対して1つ、選択されたdivごとに1つ、それぞれ11でした。
複数のsub-divを選択しても、リークの数は増えませんでした。サブディビジョンが選択された場合はリークの回数は11回、サブディビジョンが選択されていない場合は1回でした。 選択、ダイアログ、および日付ピッカー、および明るさをテーマにしたのjQuery 1.6.4、およびjQueryのUI-1.8.16を使用して
。
私が間違っていることはありますか?