只有当选项卡/窗口有焦点时,页面才能每5秒刷新一次

How can a page be refreshed every 5 secconds only when tab/window has focus?

本文关键字:刷新 5秒 一次 选项 窗口 焦点      更新时间:2023-09-26

我有一个iframe,我想每5秒刷新一次,但前提是窗口或选项卡处于活动状态。

我用META Refresh做了这件事,但我想不出一种方法来将其作为页面活动的条件,所以我尝试了javascript,但没有成功。这是我尝试过的,但不起作用:

<SCRIPT>
  $(window).focus(function(){
      setTimeout(function(){
       window.location.reload(1);
        }, 5000);
    });
 <SCRIPT>

我是朝着正确的方向前进,还是有更干净的方法来做到这一点?

您可以使用页面可见性API,每5秒检查一次页面的可见性状态:如果不是hidden,则刷新页面

$(function() {
   window.setInterval(function() {
      if (!document.hidden) {
         window.location.reload(1);
      }
   }, 5000)
});

其中hidden在此表示

页面内容对用户不可见。在实践中,这意味着文档是背景选项卡或最小化的窗口或操作系统屏幕锁定处于活动状态。