在容器上运行Jquery为空,其中有许多子项导致“无响应脚本”弹出窗口

时间:2011-12-29 10:18:36

标签: javascript jquery performance

我有一个容器,大约有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秒钟才能运行。

1 个答案:

答案 0 :(得分:0)

在没有看到代码的情况下,我无法提供具体的建议,但我首先要做的两件事是

1。)优化您的选择器,以便从DOM中清空HTML的重复代码尽可能高效。 IE8&amp; IE7因其比其他浏览器慢而臭名昭着,但通过优化脚本,你可以否定这一点。

2。)在IE8开发人员工具中运行探查器(对于IE8 IE8 Compat / IE7)并分析结果中瓶颈的位置。