javascript - 防止计时器在窗口处于非事件状态时停止 Javascript

标签 javascript timer

你好,我正在制作一个测验应用程序,并且想要设置一个计时器。我想用 Javascript 来实现。这是我的功能:

function countDown(sec, elem) {
    _(elem).innerHTML = sec;
    if(sec < 1) {
        clearTimeout(timer);
        endGame ();
        return;
    }
    sec--;
    var timer = setTimeout('countDown('+sec+',"'+elem+'")',1000);
}

问题在于,例如,对于移动版 Saffari 浏览器,当您将手指放在屏幕上(如滚动效果)时,计时器停止,但您仍然可以看到问题...所以,基本上,您可以有无限的时间。如何让计时器无论如何都运行?

提前谢谢您!

最佳答案

“无论如何”您都无法让时间运行 - Mobile Safari 在触摸事件期间不会运行 setTimeout 和 setInterval 函数调用。事实上,在iOS6之前,事件被完全丢弃。

您应该使用 Date 构造函数进行健全性检查,并执行服务器端验证。如果有人真的想作弊,他们毕竟可以修改客户端上的 JavaScript。

关于javascript - 防止计时器在窗口处于非事件状态时停止 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19146482/

相关文章:

javascript - 在javascript中格式化日期

Android 相当于 javascript 的 setTimeout 和 clearTimeout?

c - 虚拟时间已过

c - 如果 jiffies 的分辨率为毫秒,usecs_to_jiffies 如何将 usecs 转换为 jiffies?

javascript - setInterval中使用setTimeout时出现的问题

javascript - 如果选中单选框,则使用 javascript 进行重定向

javascript - 在 Canvas 中查找正方形/矩形

javascript - ecmascript-6 函数反转数组中的值

winapi - 如何使用 sendmessage 发送 win32 中具有计时器过程的 wm_timer

python - 使用计时器逐行读取