iPad JavaScript计时器停止运行检测睡眠模式
iPad JavaScript timer stop running detecting sleep mode
我正在开发一个将在主屏幕上添加书签的网络应用程序(网站),它运行计时器/秒表,但如果你锁定iPad,它就会停止JavaScript等。检测iPad何时进入睡眠模式/唤醒的最佳方法是什么,以及如何恢复计时器?
我尝试过Blur、onload、onunload和Visibility API之类的事件,有什么想法吗?
我正在使用HTML5,所以尝试将计时器值存储在本地存储中,但不确定这是否是最好的方法,有什么想法或代码示例吗。。?
感谢
您使用的计时器不是可靠的计时器(对不起Kelli)
如果你看一下代码,它基本上是这样做的:
var seconds = 0;
setInterval(function () {
seconds += 1;
console.log(seconds);
}, 1000);
CCD_ 1和CCD_。它们可以很容易地在每一次滴答声中倾斜100毫秒。如果JavaScript忙于处理其他事件,它可能会出现更大的偏差。如果你的浏览器休眠了你的JavaScript事件循环,它将完全停止。你无法检测到简历,而且你的计时器完全歪斜了。
为了解决这个问题,请使用本机Date
的轮询方法来测量时间,只有它是准确的。
// new Date creates a `Date` object with the current timestamp
var start = new Date(), now;
setInterval(function () {
now = new Date(); // poll new current time
console.log(now.getTime() - start.getTime());
}, 1000); // change to 100ms
有一个小的警告:setInterval
仍然倾斜。所以你可能会看到时间每隔一段时间就会增加2秒或0秒。要解决这个问题,请将轮询次数增加到100ms。小提示:getTime
以毫秒为单位测量,这对于秒表来说非常好;)
使用轮询方法,您的计时器将始终可靠。如果你睡觉和不睡觉,计时器就会恢复。它将跳转到当前时间。
只要你还记得start
,你就很好。
相关文章:
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 将JavaScript检测与MVC4显示模式集成的最佳方式是什么
- 检测是否以全屏模式(3d 翻书)
- 如何在 javascript 中检测引导模式对话框的关闭
- 如何检测设备模式模拟
- iPad JavaScript计时器停止运行检测睡眠模式
- 使用 jquery 检测键盘中输入的键模式
- jQuery 检测浏览器 IE9 及更低版本并抛出一个模式进行升级
- 如何检测 Web 应用是否在应用模式或 Safari 模式下运行
- 检测显示器是否已从 IE 展台模式打开电源
- 使用 jQuery 检测以引导模式加载的图像
- 尝试检测网格视图的哪一行处于编辑模式,然后在选中复选框字段时调整文本框
- 检测字符串中的“模式”并将其包装在javascript(angular)中标签
- 有没有办法检测对混合模式的支持
- 如何检测 css 模式之外的点击
- 在自助服务终端模式下检测谷歌浏览器
- 检测字符串是否包含模式
- 检测模式对话框上的按键不起作用
- 条纹检测模式的事件或方法
- 错误使用Affectiva JS SDK(帧检测模式)