IE中的jQuery DOM操作内存泄漏

时间:2012-01-12 19:05:40

标签: jquery memory-leaks dom-manipulation

我们在进行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),但都没有。

1 个答案:

答案 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方法。