【发布时间】:2013-02-22 20:17:42
【问题描述】:
我绝对不是第一个遇到 jQuery 内存泄漏问题的人,但我找不到我正在寻找的许多与我所看到的类似的问题的答案。
首先,泄漏位:
$(document).ready(function ivr_grabber(){
var xhr = $.ajax({
url: '/ivr/inprogress',
timeout: 3000,
success: function(data){
$('#open-ivrs').html(data);
data = null;
},
complete: function(){
setTimeout(ivr_grabber, 3000);
}
});
xhr = null;
});
PHP 代码返回一个表格,其中包含一些被我们的 PBX 呼叫的人。我已经注释掉了 .html(data) 行,它没有任何区别。我也删除了setTimeout,然后放回去,没有运气。我试图取消设置可能导致此泄漏的所有值,但我无法弄清楚它的来源。
它似乎以每个 ajax 调用大约 5 KB 的速率泄漏。有什么想法吗?
在 chrome 上使用 jQuery 1.7.2
我一直在拍摄堆快照,以上都没有影响泄漏
【问题讨论】:
-
为什么要将 ajax 调用添加到 xhr 变量中?
-
供以后使用。我试过不将它分配给 xhr 变量,但泄漏仍然存在。
-
您使用的是什么版本的 jQuery?能否通过将成功中的代码从成功中提取并直接运行多次来重新创建问题?
-
为什么你认为有内存泄漏?
-
成功的代码不是问题,是完整的代码。该代码只是设置超时,并在超时消失时再次运行该函数。不过,我会尝试在 ajax 之外运行它。
标签: jquery ajax memory-leaks