Web应用程序中的明显内存泄漏(可能来自AJAX?)

时间:2009-11-26 09:20:59

标签: javascript jquery ajax memory-leaks

我每隔5秒就从一个JavaScript驱动的(+ jQuery)网页运行一个AJAX请求,获取一组JSON数据。我把我的申请留在了一夜之间,到了早上我的电脑完全冻结了。我把它缩小到我的网络浏览器,现在,使用谷歌浏览器的资源跟踪器,我可以看到每个请求都会带来新的内存消耗,旧的JSON仍然存在。

由于源JSON不断变化,我用时间戳作为参数调用它,以避免缓存...我意识到缓存可以解决这个问题,但它也会使我的数据无效。

有什么想法吗?我正在覆盖上一个变量,所以我不明白为什么应该保留以前的数据。内存增加不会在AJAX请求的同一时间间隔发生,所以可能是其他东西。我很乐意私下向某人发送密码,如果有帮助的话。

谢谢大家: - )

Gausie

3 个答案:

答案 0 :(得分:1)

你在做什么数据?

可能不是jquery的ajax罪魁祸首。

你正在成长吗?您是否忘记使用var前缀声明变量?你使用innerHTML =''删除内容吗?

答案 1 :(得分:0)

首先,确保它是导致泄漏的ajax请求。不要每5秒请求一次这个ajax并检查内存是否仍然泄漏。

如果是请求,也许你覆盖了一个变量,但你有另一个变量指向这个数据? 像这样:

var a = json_object;
var b = json_object;
//A lot of other code here
var a = json_object2;

json_object仍在内存中,var b指向它。如果没有var b,也许你将它添加到某个地图或数组?在这种情况下,地图或数组指向它。

答案 2 :(得分:0)

由于您未提供某些代码示例,因此无法解答。 一般检查关闭不当使用... 无论如何 - 请查看此帖子http://www.crockford.com/javascript/memory/leak.html并使用Google或提供一些示例。 祝你好运!