2009-10-25 33 views
0

我一直在跟蹤我的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> 

回答

1

因此,這裏有幾點意見:

  • 首先,這是什麼腳本做是沒有意義的我...重置cluetips及的內容每秒一頁。爲什麼不用新的信息更新title屬性,然後刷新cluetip或設置cluetip屬性ajaxCache: false如果您通過ajax獲取更新?
  • 的物體上使用.remove()應該從DOM中刪除,並解除綁定任何引用,所以你不應該需要使用.unbind().remove();.unbind().empty();
  • 通配符不標識這樣$('#cluetip*')一個更好的方式做這方面的工作是使用選擇屬性過濾器這樣$('div[id*="cluetip"]')
  • 我不能複製的內存泄漏。
+0

的腳本簡直就是我的生產應用程序不突出的問題是什麼的測試容器。 在我的生產應用程序,我們有一個代表可以由用戶因此可以添加或刪除,當它們被添加或移除的cluetips需要添加或刪除文件錨標記。 不幸的是,它似乎是刪除不能消除因關閉(http://www.ibm.com/developerworks/web/library/wa-memleak/),這會導致泄漏到錨的引用。 什麼版本的I.E.你用它來測試這個嗎?如I.E. 6和7不能處理這種泄漏 – Andrew 2009-10-29 00:37:09

+0

感謝提醒野人。其他線索對象似乎用我現在擁有的方式清理乾淨。但是,這很可能是因爲我清理了具有id「cluetip」的父對象。 – Andrew 2009-10-29 00:38:39