当用户按下刷新按钮时,我必须从实际页面中删除一个表,然后通过ajax重新加载一个新表,然后显示新表。
我将装有ajax的TABLE附加到具有已知id的DIV中。
当用户按下“刷新”按钮时,我只是这样做:
document.getElementById('result_div').innerHTML = '';
实际上FF花了1秒钟,Chrome 2和IE大约需要10秒才冻结,所以我的用户因为这个问题非常生气。
从页面中删除整个非常大的表是否有更快的速度?
答案 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百万个细胞......)。