Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在包含多个子容器的容器上运行jqueryempty会导致;“无响应脚本”;弹出窗口_Javascript_Jquery_Performance - Fatal编程技术网

Javascript 在包含多个子容器的容器上运行jqueryempty会导致;“无响应脚本”;弹出窗口

Javascript 在包含多个子容器的容器上运行jqueryempty会导致;“无响应脚本”;弹出窗口,javascript,jquery,performance,Javascript,Jquery,Performance,我有一个容器,里面总共有6000个孩子。在速度更快的浏览器上运行Jquery.empty大约需要2秒钟,在IE7/8上清空它通常会通知用户脚本没有响应,并提供停止脚本的选项 通过阅读这里,我了解到我必须运行Jquery.empty,因为我有一些Jquery绑定到元素的对象,我希望避免内存泄漏 在setTimeout中设置空以释放“ui线程”似乎并不能阻止弹出窗口的出现 我需要关于如何加速或至少抑制弹出窗口的提示。我是否需要尝试删除一些元素或影响jquery.empty函数的因素?我能把它分成两半

我有一个容器,里面总共有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>
运行$(“.table”).find(“*”),长度为6000


.empty代码运行大约需要2秒钟。

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

1.)优化选择器,使从DOM清空HTML的重复代码尽可能高效。IE8和IE7因速度比其他浏览器慢而臭名昭著,但通过优化脚本,您可以否定这一点


2.)在IE8开发者工具(适用于IE8和IE8 Compat/IE7)中运行探查器,并分析结果中的瓶颈所在。

您可以发布代码吗。您可能有效率低下的选择器,可以改进,但是如果没有看到添加的脚本。代码和结构,就无法判断,谢谢您尝试$(“.table”).html(“”)或仅
$(“.table”)[0].innerHTML=''?正如您在中所看到的,
empty
获取每个后代并清除为其存储的任何数据。这很好,但可能是问题的原因。需要补充的一点是,没有真正的解决方案来抑制“慢速脚本警告”弹出消息-您可以通过更改注册表和触发前的语句数来阻止它的发生,但实际上这是一个可怕的解决方案,永远不可能实现。是的,我尝试了.html(“”)和.innerHTML=''。据我所知,innerHTML可能不会清除所有jquery绑定元素,如empty或html(“”)。1)我有以上述DOM结构形式作为字符串返回html的代码。然后用生成的字符串运行$(“.table”).empty()和$(“.table”).append()。通过放置计时器,我看到占用大部分时间的$(“.table”).empty()指令。2) 我一直在尝试运行IE8开发工具,但当我把它放到我的页面上时,浏览器似乎就崩溃了。(警告标志?)chrome和firefox中的评测并没有让我更深入地了解瓶颈问题。您是否尝试过任何其他API选项来删除元素,例如remove(),或者上面Felix Kling建议的选项。
$(".table").empty();