我有一个容器,大约有6000个孩子。在其中一个较快的浏览器上运行Jquery.empty大约需要2秒,而在IE7 / 8上清空它会经常通知用户脚本没有响应并提供停止它的选项。
在这里阅读我已经知道我必须运行Jquery.empty,因为我有一些jquery绑定对象到元素,我想避免内存泄漏。
将空值放入setTimeout以缓解“ui线程”似乎不会阻止弹出窗口出现。
我需要提示如何加快速度或至少抑制弹出窗口。我是否需要尝试删除一些元素或影响jquery.empty函数的内容?我能把它分成两部分吗?
代码:
DOM结构如下:
<div class="table">
<a id="header1">header1</a>
<div id="content1">
<a class="contenttext1">contenttext1</a>
</div>
<div id="content2">
<a class="contenttext2">contenttext2</a>
</div>
....content3
....content4
....
</div>
我正在用以下内容清空div.table:
$(".table").empty();
运行$(“。table”)。find(“*”)。length给出6000。
.empty代码大约需要2秒钟才能运行。
答案 0 :(得分:0)
在没有看到代码的情况下,我无法提供具体的建议,但我首先要做的两件事是
1。)优化您的选择器,以便从DOM中清空HTML的重复代码尽可能高效。 IE8&amp; IE7因其比其他浏览器慢而臭名昭着,但通过优化脚本,你可以否定这一点。
2。)在IE8开发人员工具中运行探查器(对于IE8 和 IE8 Compat / IE7)并分析结果中瓶颈的位置。