我有一個奇怪的行爲。我正在使用一個相當沉重的頁面(4000個節點),意在顯示一個派送系統的交付操作。每30秒。我用jquery刷新操作列表(3000個節點超過4000個)。它工作得很好,但是...每次,firefox和chrome的內存都增加3到6ko。當然,過了一段時間,瀏覽器崩潰了......瀏覽器內存不斷增加與JavaScript阿賈克斯調用
有沒有人有任何想法爲什麼?這是內存泄漏嗎? JavaScript是否失敗了?我檢查過了,每次刷新後,我有相同數量的節點,這意味着替換正常執行。
每次刷新操作後我重置幾個事件:這裏有一個例子
$("#orders_list .list_table_row").hover(
function(){
// mouse over
$(this).children().css("background-color","#E0E0E0");
},
function(){
// mouse out
$(this).children().css("background-color","");
});
任何建議真的歡迎,提示什麼...
我發現2個相關鏈接: http://www.javascriptkit.com/javatutors/closuresleak/index3.shtml和 http://www.jibbering.com/faq/faq_notes/closures.html
感謝, 保羅
修訂1 - 添加代碼示例和鏈接
代碼(甚至縮小)將受到歡迎...;) – Bobby 2010-03-09 18:51:08
一些更多的信息將是很好的。例如,你正在替換的4000個節點中是否有附加的事件處理程序,是否使用閉包等。所有這些都可能是內存泄漏的原因。 – 2010-03-09 18:54:19
FF有一個內存泄漏監視器插件,我沒有嘗試過太多(只是安裝它)。也許它可以給你一個提示? https://addons.mozilla.org/en-US/firefox/addon/2490 – MyGGaN 2010-03-09 18:58:21