javascript - 在 Jquery 或 Javascript 中调用方法的无限循环的正确方法是什么?

标签 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);
    });
};

这行得通,但是,它会导致我认为是内存泄漏,因为大约 15 分钟后,计算机几乎死机,浏览器占用了所有可用内存和 CPU。

我猜超时基本上是堆叠的,但是,我不确定如何解决这个问题。我已经尝试摆脱第二次超时并将第一个超时放在 while(true) 循环中,但是,我就是无法让它工作。

任何人都可以提出任何建议吗?

最佳答案

这实际上看起来不错。但是,如果第一个 Ajax 调用没有在两秒内完成,它将堆栈,这可能(不确定)会导致问题。

超时本身不会叠加,因为您只是在前一个超时结束后才启动一个新超时。

一旦两个 Ajax 请求完成,尝试启动一个新的超时:

$.when($('#topbox').load('/home/blabla'),
       $('#leftgraph').load('/home/blabla')
).then(function () {
    setTimeout(updateDivContent, 2000);
});

引用: $.when

关于javascript - 在 Jquery 或 Javascript 中调用方法的无限循环的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049777/

相关文章:

javascript - 限制输入 Vuejs 的小数位数

javascript - 使用 d3 的交互式蜘蛛图或雷达图

javascript - 浏览器在动态添加的基本 html 标记后加载 Assets 两次

JavaScript getMonth() 返回月份值 50

javascript - 一次只显示一个数组项 (Javascript)

java - 并发修改异常

javascript - 期望 ':' 而不是看到 '_variableName'

javascript - "Intercepting"用户在文本框中输入并删除

javascript - jquery 每个 json 对象不执行任何操作

java - 在方法中的循环外部提取变量