我使用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秒调用一次。这可能是导致内存泄漏的原因吗?
答案 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)
是的,可能是。
要尝试的第一件事是采用那里定义的两个函数(如果可能的话)并将它们放在更高的级别,以便它们只定义一次。