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

时间:2017-12-26 09:02:33

标签: javascript jquery ajax timer

我正在尝试构建一个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);

1 个答案:

答案 0 :(得分:1)

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