如何用IE在短时间内删除DOM的很大一部分

How to remove a very large portion of DOM with IE in small amount of time?

本文关键字:DOM 一部分 删除 何用 IE 短时间      更新时间:2023-09-26

当用户按下刷新按钮时,我必须从实际页面中删除一个表,然后通过ajax重新加载一个新表,然后显示新表。

我将ajax加载的TABLE封装到一个DIV中,其中包含一个已知的id。

当用户按下刷新按钮时,我只需执行以下操作:

document.getElementById('result_div').innerHTML = '';

实际上FF需要1秒,Chrome 2和IE大约需要10秒,而且它很冷,所以我的用户因为这个问题非常非常愤怒。

有没有更快的方法可以从页面中删除整个非常大的表?

最后,我使用这个解决方案。

首先,我从TBODY中删除每一个TR

container = document.getElementById('result_table_body');
if (container) {
    var len = container.childNodes.length;
    while (len--) {
        container.removeChild(container.lastChild);
    };
}

然后我批量删除了用作结果容器的div中剩余的内容

$('#result_div').html('');

我在这里找到了这个片段:http://jsperf.com/jquery-empty-vs-html/14

我不想相信,但它比清空innerHTML更快,也比jQuery empty()函数更快(在IE 11中,这是我的特定关键案例,FF使用空、innerHTML或其他方式删除100万个单元格没有任何问题…)。