我们在进行DOM操作时发现IE上存在严重的内存泄漏。基本上,我们这样做:
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),但都没有。
答案 0 :(得分:0)
试试这个:
function updateTable(){
$.get('table.jsp', function(data){
var dt = $(data).find('#dataTable').html()
$('#dataTableContainer').html(dt);
setTimeout(updateTable, 1000);
});
}
html jQuery method接收字符串或函数,而不是像你正在做的查询对象。 html方法取代了内容,因此无需使用empty方法。