wil*_*wil 1 javascript jquery loops
我有一个页面,我想每隔几秒钟不停地更新.
为此,我写了以下内容:
var to;
$(function () {
to = setTimeout(updateDivContent, 2000);
});
function updateDivContent() {
$('#topbox').load('/home/blabla', null);
$('#leftgraph').load('/home/blabla', null, function () {
to = setTimeout(updateDivContent, 2000);
});
};
Run Code Online (Sandbox Code Playgroud)
然而,这很有效,它导致我认为是内存泄漏,因为大约15分钟后,计算机几乎冻结了浏览器占用所有可用内存和CPU.
我猜测Timeout基本上是堆叠的,但是,我不知道如何解决这个问题.我已经尝试摆脱第二次超时并将第一次超时放入while(true)循环中,但是,我无法让它工作.
谁能提出任何建议?
这看起来很好.但是如果第一个Ajax调用没有在两秒内完成,它将堆叠,这可能(不确定)确定会导致问题.
超时本身不会堆叠,因为只有在上一个完成后才启动新的超时.
两个 Ajax请求完成后尝试启动新的超时:
$.when($('#topbox').load('/home/blabla'),
$('#leftgraph').load('/home/blabla')
).then(function () {
setTimeout(updateDivContent, 2000);
});
Run Code Online (Sandbox Code Playgroud)
参考: $.when