ajax内存泄漏

时间:2010-01-28 15:51:03

标签: javascript jquery ajax memory-leaks

我使用ASP.NET AJAX和jQuery的组合在IE和Firefox中遇到了缓慢的内存泄漏。我的场景非常类似于这里描述的场景:Preventing AJAX memory leaks除了使用jquery和asp.net AJAX,而不是protyotype:我有一个网页显示UpdatePanel中的数据,每60秒使用一个计时器刷新一次。在每个“部分回发”调用的AJAX javascript pageLoad函数中,我重新绑定事件,因为它们在asp.net部分回发中丢失了:

function pageLoad(sender, args) {
    $("#item").unbind();
    $("#item").hover(
        function() {
            // do something
        },
        function() {
            // do something
        });
}

所以每60秒调用一次。这可能是导致内存泄漏的原因吗?

2 个答案:

答案 0 :(得分:2)

请改为:

$(function() { //.ready shortcut...
  $("#item").live("hover",
    function() {
        // do something
    },
    function() {
        // do something
    });
 });

注意,这个requires jQuery 1.4.1,但在内存方面的行为完全不同。它附加到entire DOM watching for the event to bubble,而不是将新事件附加到每60秒插入的每个对象。

答案 1 :(得分:0)

是的,可能是。

要尝试的第一件事是采用那里定义的两个函数(如果可能的话)并将它们放在更高的级别,以便它们只定义一次。