可能重复:
Chrome:后台选项卡中暂停的超时/间隔?
在您当前未查看的选项卡上运行时setInterval()
以及在运行时是否有最小允许延迟?setTimeout()
此代码setInterval()
以指定的 100 毫秒延迟运行,并写出实际延迟的时间。它还会在您进入/离开选项卡时报告。
<html>
<body>
<script type="text/javascript">
window.onfocus = function () { document.body.innerHTML += 'entered tab<br />'; };
window.onblur = function () { document.body.innerHTML += 'left tab<br />'; };
var previous = new Date().getTime();
setInterval(function () {
var now = new Date().getTime();
var elapsed = now - previous;
document.body.innerHTML += elapsed + '<br />';
previous = now;
}, 100);
</script>
</body>
</html>
以下是 Ubuntu 10.04.2 LTS 上 Chrome 12.0.742.100 的输出摘录:
101
101
101
left tab
1001
1000
1004
1003
1002
1000
entered tab
101
101
101
102
101
我也尝试了不同的延迟值。当您查看不同的选项卡时,任何小于 1000 的值都会导致将其提升到 1000 的相同行为。超过 1000 的值表现正确。setTimeout()
这段代码的版本也会发生同样的事情。