jQuery $ .post()(AJAX)导致内存泄漏

时间:2012-04-17 17:02:02

标签: javascript jquery

  

可能重复:
  jQuery Memory Leak Suspicion

我注意到,随着标签保持打开状态,我们的网站越来越慢。使用Chrome的任务管理器,我缩小了问题范围:

每次调用以下代码行时,内存使用量都会增加:

$jquery.post(url, params);

我在1秒计时器上实现了这段代码,几分钟内内存使用量从30MB变为250MB。只注释掉这一行代码可以解决这个问题。请注意,我只注释掉这一行;我仍然生成URL和参数。所以问题肯定与这行代码有关。每次运行大约2MB的内存消耗。

显然,有一些memleak。我希望它与结果的缓存或JSON反序列化有关(JSON结果可能相当大)。

任何人都可以提供解决方案或解决方案吗?即使仅仅强制进行一些垃圾收集也是可以接受的。 FWIW,内存使用量偶尔会减少,但不是很多(垃圾收集?)。我刚看到它从300MB下降到250MB,但现在再次上升。

更具体地说,代码看起来像这样......

...

    init: function()
    {
        setInterval(function(){ SManager.updateAll(); }, 1000);
    },

    updateAll: function() 
    {
        var url = SManager.SERVER_URL;
        var params = new Object();
        params.version = 1;
        params.platform = 'web';

        $jquery.post(url, params);
    },

谢谢!

2 个答案:

答案 0 :(得分:1)

使用分析工具查找未进行垃圾回收的大对象。例如。在Chrome F12 / Profiling / Heap trace中。

答案 1 :(得分:1)

与stackoverflow上的解决方案类似的问题 我相信您problem的解决方案可以在这里找到:

jQuery Memory Leak Suspicion