如何在焦点外运行setInterval?

时间:2016-12-06 20:30:41

标签: javascript html

在我当前的网站上,我试图制作一个cookie点击式游戏...但是当我每秒运行收集器的货币时,当我切换标签时它会减慢...

这是脚本:

setInterval(ppsCollector,16.6666666667);
function ppsCollector() {
  var ppf = pps / 60;
  pounds += ppf;
  document.getElementById("poundCount").innerHTML = metricAbbreviate(pounds);
  document.getElementById("pps").innerHTML = metricAbbreviate(pps);
}

有没有办法在失焦时以相同的速度运行它?

提前感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

在对此问题进行一些研究后,看起来浏览器会强制增加背景标签的间隔,以防止机器在打开一堆标签时减慢速度。但是,您可以实现一些解决方法(有关完整列表,请参阅here。)

我建议您查看HTML5 Web Workers。唯一的缺点是他们无法直接访问DOM,因此您需要利用PostMessage方法将消息发送回父JavaScript以更新所需的元素。