如何用IE在短时间内删除DOM的很大一部分
How to remove a very large portion of DOM with IE in small amount of time?
当用户按下刷新按钮时,我必须从实际页面中删除一个表,然后通过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万个单元格没有任何问题…)。
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何使用ViewCompiler手动编译DOM的一部分
- 通过Java加载XML并制作HTML DOM的一部分
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- JavaScript:将字符串的一部分放入DOM容器中,保存溢出
- 警报和确认函数是内置在 JavaScript 中,还是 DOM 的一部分
- 是新创建的元素,它不是DOM样式的一部分,或者所有值都设置为默认值
- cookie被认为是DOM树的一部分吗?
- 用jquery添加的内容不是DOM的一部分
- 如何使用变量值作为dom树的一部分
- 作为IIFE的一部分创建的DOM元素会发生什么?
- 元素不可见,但仍然是DOM的一部分用于操作
- 为什么React要更新DOM的这一部分?