1

我正在开发一个应用程序,该应用程序使用 setInterval 每 2 分钟使用 AJAX 将当前时间戳发送到数据库。

但不知何故 setInterval 在几分钟后停止(我没有计算确切的时间),但我相信它发生在我不打开该浏览器的标签 20-30 分钟时。

function tmstmp() {
$.post("send_functions.php?act=time");
}

$(function() { 
setInterval(tmstmp, 60000);
});

如果该选项卡不在前台,setInterval 停止是正常的吗?

如果是,我怎样才能防止 setInterval 停止?或检查它是否停止?

谢谢

4

3 回答 3

1

您应该尝试在页面启动时进行函数调用:

test();

然后循环该函数:

function test() {
    setTimeout(function() {
        // your code
        test();
    }, 2000);
}
于 2016-08-14T16:01:17.510 回答
0

没有代码 + 没有调试信息 = 很难判断出了什么问题。

只是为了确保将以下行添加到执行的代码(方法)中,setInterval并在 20-30 分钟后观察,如果您仍然在控制台中获得输出。

console.log('Yep! I am alive!');

编辑:除了尝试更改tmstmp方法以在执行 POST 请求后包含回调函数之外,可以是任何东西。这样你至少会知道它有效。

function tmstmp() {
    $.post("send_functions.php?act=time", function(data){
        console.log('Yep! I am alive!');
    });
}
于 2012-04-15T20:17:01.690 回答
0

这不应该发生。浏览器确实可以将计时器分辨率降低到大约 1/s,但不会清除 setInterval。

您的代码中是否存在导致 的错误clearInterval

于 2012-04-15T20:21:52.273 回答