【问题标题】:javascript reload page every 5 seconds when browser is minimized当浏览器最小化时,javascript每5秒重新加载一次页面
【发布时间】:2016-11-17 11:40:09
【问题描述】:

实际上,当数据库中发生某些更新时,我们会播放通知声音,所以我尝试在浏览器最小化时每 5 秒重新加载一次页面,这在 Firefox 中工作正常,但在 Chrome 中这不起作用。

场景:

最小化浏览器,让电脑闲置。

我尝试了两种方法:

方法一:

   <meta http-equiv="refresh" content="5;URL=http://example.com/" />

方法二:

 <script>

   $(document).ready(function () {

   setTimeout(function(){
    window.location.reload(1);
    }, 5000);

    });

 </script>

任何帮助都会很棒。

【问题讨论】:

  • 您无法从客户端 javascript 中识别出浏览器窗口已最小化。
  • @Vision ,但是即使浏览器窗口最小化,自动重新加载也可以在 Firefox 中工作,为什么在 Chrome 中不行?
  • 当您可以从服务器获取更新后的数据时,为什么要重新加载整个页面?无论如何window.location.href = window.location.href; 不工作?
  • 当浏览器没有焦点时,Chrome 的行为与定时事件不同。我没有在桌面上的 Firefox 上尝试过这个,但是移动设备上的 Firefox 和 Chrome 都停止触发多个定时事件。

标签: javascript jquery browser reload minimized


【解决方案1】:

窗口blurfocus事件可以检测窗口的视图状态。

示例:

 var timer = null;

 //when the window is minimized or when user is in different tab . 
    window.addEventListener('blur', function(){

       timer = setInterval(function(){

          window.location.reload(1);

       },5000)

    }, false);


//when user is back to window
    window.addEventListener('focus', function(){

        //stop the page reload once 

        if(timer != null){

        clearInterval(timer);

      }
    }, false);

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 2020-01-16
    • 2011-12-01
    • 2020-03-06
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    相关资源
    最近更新 更多