内存使用量在PhoneGap App中攀升

AnR*_*AnR 5 javascript android memory-management jquery-mobile cordova

我有一个PhoneGap/JQuery MObile应用程序,它从服务器通过Ajax获取数据并将其显示为列表.随着每次Ajax获取,App占用的内存增加大约10 MB.对于第一次获取它可能没问题,因为它获取大量记录(大约700).但是,对于后续调用,我的理解是它应该重用内存而不是每次堆积另外10 MB.我使用.off()来释放事件处理程序,以防它们占用内存但没有成功.

这是显示输出的主页面Div:

<div data-role="content"  class="MainContent"  style="overflow:hidden; padding-top: 0px;">
    <ul data-divider-theme="b" data-role="listview" data-inset="true" class="MainMenu">

    </ul>
Run Code Online (Sandbox Code Playgroud)

这是从服务器获取数据并在上面的div中显示的Javascript代码.

AjaxFile = "mydomai.com/ajax.php";
$.get(AjaxFile, function (AjaxData) {

    $( ".PL" ).off();
    $(".MainMenu").off();
    $(".MainContent").off();

    AjaxData = '<li class="MainMenuList" data-role=list-divider>' + gTitle + AjaxData;
    $(".MainMenu").empty();
    $(".MainMenu").html(AjaxData);
    $(".MainMenu").listview('refresh');
    window.scrollTo(0, 0);
    $.mobile.loading('hide');

    HighlightRow(gCurrentFile);
    $(document).ready(function () {
        $(".PL").click(function () {
            if ( !$(this).hasClass("BTitleRow") )
            {
                $(".PL").removeClass("RowHighlight");
                $(this).addClass("RowHighlight");
                OpenNewLink($(this).attr('name'));
            }
        });
    });

});

AjaxData = null;
return;
Run Code Online (Sandbox Code Playgroud)

有人可以请告诉我如何释放内存并确保重用相同的内存而不是堆积越来越多的内存.

非常感谢.

=========更新===========

即使我删除下面的部分,我仍然可以看到内存使用量攀升:

$(document).ready(function () {
        $(".PL").click(function () {
            if ( !$(this).hasClass("BTitleRow") )
            {
                $(".PL").removeClass("RowHighlight");
                $(this).addClass("RowHighlight");
                OpenNewLink($(this).attr('name'));
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

在Ajax和listview("刷新")中似乎存在某种内存泄漏.有谁可以帮助我吗.谢谢

Shi*_*dya -2

试试这个,它会在您的应用程序启动时清除捕获。我知道这就是您现在真正想要的,但这可能对您有帮助..

super.clearCache(); // just add This Line
super.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)