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

问题描述 投票:0回答:2

我有一个页面,我在其中使用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%。

非常感谢您的帮助。

javascript jquery internet-explorer-8 jquery-events
2个回答
0
投票

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.