【发布时间】:2012-01-12 19:05:40
【问题描述】:
我们在 IE 上进行 DOM 操作时发现了严重的内存泄漏。基本上,我们是这样做的:
function updateTable(){
$.get('table.jsp', {}, function(data){
$('#dataTableContainer').empty().html($(data).find('#dataTable'));
setTimeout(updateTable, 1000);
});
}
并每秒重复一次该方法。从我们所见,该方法在 jQuery 1.7.1 中每 10 秒泄漏大约 1Mb 的内存(旧版本更糟)。
我们做错了吗?我们尝试了几种已在 stackoverflow 中发布的解决方案(例如jQuery memory leak with DOM removal),但都没有奏效。
【问题讨论】:
-
我认为这不是问题,但我的印象是
$(<selector>).html(<some-html>)与$(<selector>).empty().append(<some-html>)相同。您是否发现情况并非如此(或者您调用.empty()函数还有其他原因)? -
我们可能不得不查看其余的相关代码。
-
@Patricia - jQuery 的版本是正确的。
-
出于某种原因,我将其读作 jquery ui 版本。我想我需要检查一下眼睛!
-
实际上,我知道这是有问题的行,因为当我评论它时,没有内存泄漏。
标签: jquery memory-leaks dom-manipulation