在我的 javascript 应用程序中,我在AJAX
调用检索JSON
对象时有很大的内存泄漏。代码真的很简单:
function getNewMessage()
{
new_message = []; // this is global variable
var input_for_ball = [];
var sum;
var i;
var http = new XMLHttpRequest();
http.open("GET", url + "/random_ball.json", false);
http.onreadystatechange = function()
{
if(http.readyState === 4 && http.status === 200)
{
var responseTxt = http.responseText;
input_for_ball = JSON.parse('[' + responseTxt + ']');
}
}
http.send(null);
new_message = input_for_ball;
}
每 1 毫秒调用一次,如您所见,它是同步调用。此功能每 1 秒花费我 1MB。
当我使用而不是AJAX
仅仅分配给变量时,例如:
input_for_ball = JSON.parse('[0,0,0,0,0,0,0,0,0,0]');
那么它的一切都很完美。所以错误必须在我的AJAX
调用实现中。这也发生在我使用jQuery AJAX
呼叫时。
2013 年 12 月 3 日更新
如下Tom van der Woerdt
所述,这确实是预期的行为。因此,正如Matt B.
建议的那样,我重写了一些代码以使异步调用成为可能,并且帮助很大。现在我的应用程序内存消耗稳定且小。