【问题标题】:JSONP Ajax Call with JQuery causes memory leak使用 JQuery 的 JSONP Ajax 调用导致内存泄漏
【发布时间】:2013-08-07 15:28:18
【问题描述】:

我已经搜索了一整天,但找不到为什么我的 phonegap 应用程序会出现如此大的内存泄漏的问题,该应用程序对服务器使用了大量的 ajax-jsonp 请求。

因此,我将其分解为最简单的示例。你可以找到它here on jsfiddle

它的主要内容是:

function run(){
   $.ajax({
        dataType: 'jsonp',
        url: "http://thawing-bayou-7281.herokuapp.com/test.js",
        success: function (res) {
            // some stuff here
            setTimeout(run, 250);
        }
    });
};
run();

因此,此代码每 250 毫秒无限次调用 jsonp api 请求。

请注意:我知道这是一个你永远不会这样实现的例子!它只是用于检测内存泄漏。

当我运行这个示例时,使用的内存会迅速增加(您可以在 Chrome 时间轴选项卡中看到它的最佳状态)。 DOM 节点 的数量也在迅速增加。在某些时候它会崩溃(也许是一些 GC?),但元素和所需的内存会迅速增加。

你们中有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

    标签: jquery ajax performance memory-leaks garbage-collection


    【解决方案1】:

    这不是内存泄漏,锯齿型图在 java 中很常见。内存使用率上升,垃圾收集器被调用,然后下降。您展示的图表就是这样一种情况。

    如果图表的低点持续增加,您将发生内存泄漏,而您的图表中没有显示。

    【讨论】:

    • Java?!认为你的意思是 JavaScript,伙计! Java 也确实有垃圾收集...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2017-01-13
    • 2012-11-07
    • 1970-01-01
    相关资源
    最近更新 更多