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

时间:2015-11-06 13:26:33

标签: javascript jquery html internet-explorer

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

我将装有ajax的TABLE附加到具有已知id的DIV中。

当用户按下“刷新”按钮时,我只是这样做:

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

实际上FF花了1秒钟,Chrome 2和IE大约需要10秒才冻结,所以我的用户因为这个问题非常生气。

从页面中删除整个非常大的表是否有更快的速度?

1 个答案:

答案 0 :(得分:1)

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

首先,我从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没有任何问题,使用空的,内部HTML或其他方式移除1百万个细胞......)。