【问题标题】:How to find out if my page is being used? [duplicate]如何确定我的页面是否被使用? [复制]
【发布时间】:2014-01-04 09:57:43
【问题描述】:

有什么方法可以知道我的页面是否正在被使用?我的意思是,如果它在用户屏幕上。带有页面的选项卡在屏幕上处于活动状态。我有一些服务器-客户端数据流,我想优化它。我只想在用户正在观看页面时让数据流动,而不是当页面在浏览器中打开但隐藏在非活动选项卡中时。 有人知道吗? 谢谢。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    如果要查看标签当前是否可见(不是隐藏标签),则可以使用the visibility API

    Here's 一个小功能示例,让您在大多数浏览器上都注册可见性更改事件并检查可见性:

    //  var visible = vis(); // gives the current state
    //  vis(function(){ ... });   // register a visibility change event handler
    var vis = (function(){
            var stateKey, eventKey, keys = {
                    hidden: "visibilitychange",
                    webkitHidden: "webkitvisibilitychange",
                    mozHidden: "mozvisibilitychange",
                    msHidden: "msvisibilitychange"
            };
            for (stateKey in keys) {
                    if (stateKey in document) {
                            eventKey = keys[stateKey];
                            break;
                    }
            }
            return function(c) {
                    if (c) document.addEventListener(eventKey, c);
                    return !document[stateKey];
            }
    })();
    

    Demonstration

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 2010-09-29
      • 2010-09-13
      • 1970-01-01
      • 2014-12-25
      • 2011-12-24
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      相关资源
      最近更新 更多