如何确定我的页面是否被使用?

时间:2013-12-16 20:48:34

标签: javascript

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

1 个答案:

答案 0 :(得分:2)

如果您想查看该标签目前是否可见(不是隐藏标签),则可以使用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