我一直在跟蹤我的web應用程序中的內存泄漏這 動態刪除,並增加了其具有cluetip提示 連接,我想我可能已經縮小的問題在cluetip的 主封錨它將線索附加到節點(線 32:var link = this,$ this = $(this);)。jQuery的cluetip內存泄露
我一直在SIEV中運行以下腳本,修改後的 版本的jquery 1.3.2具有以下修復程序,允許刪除 cluetip元素。但是,錨節點變成 孤兒,因爲在移除節點 後仍然有1個引用它們?
如果我將線索源的第32行更改爲以下用於測試 的目的: var link = $('br'),$ this = $('br');
錨被釋放,但「BR」節點開始建立。
因此,我想知道是否有人知道我怎麼能解決這個問題 ?或者如果我只是不正確地釋放資源?
附加腳本和來源:
jQuery修改。在1247行之後在 關閉大括號(http://markmail.org/message/cfi4bvfjc3m6ww6k#query:jquery%20memory%20leak%20in%20remove%20and%20empty+page:1+mid:tapc7zt3cwl6rw4f+state:results)前插入以下內容:
this.outerHTML =「」;
示例腳本:
<html>
<head>
<link rel="stylesheet" type="text/css" href="jquery.cluetip.css"/>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="jquery.cluetip.js"></script>
<script type="text/javascript">
$(document).ready(function() {
setInterval(resetCluetip, 1000);
});
function resetCluetip() {
$('a').each(function() {
$(this).cluetip('destroy');
$(this).unbind().remove();
});
$('#cluetip*').unbind().empty();
$('body').html('<a href="#" class="contextMenu" title="title|body">anchor one</a><br>');
$('a').each(function() {
$(this).cluetip({splitTitle: '|'});
});
}
</script>
</head>
<body>
</body>
</html>
的腳本簡直就是我的生產應用程序不突出的問題是什麼的測試容器。 在我的生產應用程序,我們有一個代表可以由用戶因此可以添加或刪除,當它們被添加或移除的cluetips需要添加或刪除文件錨標記。 不幸的是,它似乎是刪除不能消除因關閉(http://www.ibm.com/developerworks/web/library/wa-memleak/),這會導致泄漏到錨的引用。 什麼版本的I.E.你用它來測試這個嗎?如I.E. 6和7不能處理這種泄漏 – Andrew 2009-10-29 00:37:09
感謝提醒野人。其他線索對象似乎用我現在擁有的方式清理乾淨。但是,這很可能是因爲我清理了具有id「cluetip」的父對象。 – Andrew 2009-10-29 00:38:39