用jQuery替换内容会导致IE8中的内存泄漏吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用jQuery替换内容会导致IE8中的内存泄漏吗?相关的知识,希望对你有一定的参考价值。

我有一个页面,我在其中使用ajax加载信息表。加载表后,我将使用jQuery在表的行上连接一些事件处理程序。

在该页面上,用户可以刷新该表。我的用于刷新表格的jQuery代码如下所示:

    $.post("/myurl", { id: 0}, 
        function (d) 
        { 
            $("tblWrapper").html(d);

            //Wire events
            $("table tr", $("tblWrapper")).click(function (e) { ... });
            ...etc
        }, "text");

[我已经注意到,经过几次这样的尝试,当我尝试在IE8中进行任何滚动或动画处理时,页面的响应都会非常缓慢。

我的问题是,我在做什么错,这使得它变得越来越慢?我可以在用新的html和新的处理程序替换旧的html / event处理程序之前对其进行清理吗?我以为JS引擎可能会自动执行此操作。也许可以,但是清理起来很慢,我不知道。

我已经注意到IExplorer上的CPU时间达到了50%。

非常感谢您的帮助。

答案

我不确定这是否是问题,但是您是否不断重复添加相同的行?由于表中的行越来越多,它的速度可能会变慢。

您可以执行类似$(“ table tr”)。remove()之类的操作来清除行。

另一答案

这里很好的讨论和解决问题的方法:

http://forum.jquery.com/topic/performance-issues-using-ajax-async

以上是关于用jQuery替换内容会导致IE8中的内存泄漏吗?的主要内容,如果未能解决你的问题,请参考以下文章

存储过程会导致内存泄漏吗?

可以直接将字符串作为参数传递会导致 C++ 中的内存泄漏吗?

内存泄漏会导致我的进程被杀死吗?

为啥使用“新”会导致内存泄漏?

迭代器会导致内存泄漏吗?

这个 JavaScript 代码会导致内存泄漏吗?