IE中的jQuery DOM操作内存泄漏



我们在执行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内存泄漏和DOM删除),但都不起作用。

试试这个:

function updateTable(){
    $.get('table.jsp', function(data){
        var dt = $(data).find('#dataTable').html()
        $('#dataTableContainer').html(dt);
        setTimeout(updateTable, 1000);
    });
}

html-jQuery方法接收一个字符串或函数,而不是像您所做的那样接收一个查询对象。html方法替换了内容,因此不需要使用empty方法。

最新更新