我注意到我刚写的一些JavaScript似乎存在内存泄漏问题,这是一个相当简单的代码块 - 多亏了jQuery - 但我可以在任务管理器中观察它运行,内存使用量会缓慢地增加4到40个字节。
我所做的就是通过getJSON将一些数据传递给ASP MVC控制器/操作:
我所做的就是通过getJSON将一些数据传递给ASP MVC控制器/操作:
$(document).ready(function () {
var olddata = "";
window.setInterval(function () {
var options = JSON.stringify({
orderby: "name"
});
var params = {
options: options,
data: olddata ? JSON.stringify(olddata) : ""
};
$.getJSON("/Home/GetTasks", params, function (json) {
olddata = json;
json = null;
});
params = null;
options = null;
}, 1000);
});
我已经将计时器的值增加了,以便更容易地查看问题。显然我在这里做错了什么,但是看不出来。
我应该清理getJSON调用吗?
TIA。
setInterval
中移出。定义它,然后在setInterval
中使用其处理程序。这将有助于在一定程度上减轻泄漏问题。 - Mrchief$(document).ready()
范围内(因此只有一个副本),则会更少地依赖浏览器垃圾回收,但如果setInterval时间小于getJSON响应时间,从而同时存在两个getJSON调用,则可能会创建问题。 - jfriend00