私はすでに丸一日検索しましたが、サーバーへの ajax-jsonp リクエストを大量に使用する phonegap アプリケーションでこのような大きなメモリ リークが発生する理由を見つけることができません。
したがって、私はそれを最も単純な例に分解しました。こちらの 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();
したがって、このコードは jsonp API リクエストを 250 ミリ秒ごとに無期限に呼び出します。
注意してください:これは決して実装しない例であることはわかっています! メモリリークを検出するためだけです。
この例を実行すると、使用メモリが急速に増加します (Chrome の [タイムライン] タブで最もよくわかります)。 DOM ノード の数も急速に増加しています。ある時点で故障しますが (おそらく GC でしょうか?)、要素と必要なメモリが急速に増加します。
この問題を解決する方法を知っている人はいますか?
ありがとう!