如何在页面/选项卡处于非活动状态时停止setInterval自动刷新

how to stop setInterval auto-refresh when page/tab is inactive?

本文关键字:活动状态 setInterval 刷新 于非 选项      更新时间:2023-09-26

我有一个javascript来解析twitter提要,并每30秒在我的页面中的一个块中显示它们,代码如下:

var auto_refresh=设置间隔(函数(){//获取twitter订阅源});},30000);

现在,如果用户最小化了他的浏览器或切换到另一个选项卡(页面未激活),我想禁用这个auto_referesh clearInterval(auto_refresh);

感谢您的帮助

答案如下:

是否有方法检测浏览器窗口当前是否处于非活动状态?

您可能想要查看

  • 如何检测浏览器窗口是否聚焦
  • 确定网页是否有前景窗口焦点/是否为活动选项卡
  • 如何判断浏览器/选项卡是否处于活动状态
  • 是否可以判断用户是最小化了我的页面还是禁用了选项卡
  • 是否有方法检测浏览器窗口当前是否处于非活动状态
  • https://odondo.wordpress.com/2007/08/28/javascript-and-cross-browser-window-focus/

还要注意的是,Chrome显然有一些优化,可以在选项卡不在焦点时减缓计时器的启动:当选项卡在Chrome中处于非活动状态时,我如何使setInterval也能工作?

这个answer非常干净:https://stackoverflow.com/a/18677784/9027171

摘录自infinito84的答案

 if(!document.hasFocus()){
       // The tab is not active
 }
    else{
       // The tab is active
 }