如果用户没有使用浏览器,则jQuery计时器停止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果用户没有使用浏览器,则jQuery计时器停止相关的知识,希望对你有一定的参考价值。

我正在尝试构建一个jQuery计时器,但它在浏览器没有聚焦或最小化时停止。我的一个想法是代码可以使用Ajax不断从服务器提取数据并更新计时器,但我担心的是它可能会增加服务器的压力。我想知道有没有办法检查用户是否在前端使用浏览器,所以代码只需要在用户返回后发送Ajax请求。

我的jQuery计时器代码片段。

(function timer (offset) {
    setTimeout(function () {
        var timestamp = {{ time }};
        timestamp = 5 * 60 - timestamp - offset;
        var minutes =  Math.floor(timestamp / 60);
        var seconds =  Math.floor(timestamp % 60);
        document.getElementById("timer").innerhtml = minutes + " : " + seconds;
        timer(offset + 0.5);
    }, 500);
})(0);
答案

window.setTimeoutdelay参数是回调运行前的最短时间,not a guaranteed time。不是在超时中保持运行的总时间,而是存储计时器启动的时间并将其与当前时间进行比较。 Performance.now()将为您提供以毫秒为单位的准确时间戳

以上是关于如果用户没有使用浏览器,则jQuery计时器停止的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 程序中提供超时 [重复]

具有可配置开始时间的 JQuery 倒数计时器

警报代码有问题,需要用户输入和后台计时器。定时器工作,但不停止程序

NSTimer 导致崩溃

关于移动端浏览器转入后台后倒计时停止运行的问题

jQuery Timer:启动/停止/恢复/删除任何HTML元素中的漂亮计时器。