【发布时间】:2014-01-04 09:57:43
【问题描述】:
有什么方法可以知道我的页面是否正在被使用?我的意思是,如果它在用户屏幕上。带有页面的选项卡在屏幕上处于活动状态。我有一些服务器-客户端数据流,我想优化它。我只想在用户正在观看页面时让数据流动,而不是当页面在浏览器中打开但隐藏在非活动选项卡中时。 有人知道吗? 谢谢。
【问题讨论】:
标签: javascript
有什么方法可以知道我的页面是否正在被使用?我的意思是,如果它在用户屏幕上。带有页面的选项卡在屏幕上处于活动状态。我有一些服务器-客户端数据流,我想优化它。我只想在用户正在观看页面时让数据流动,而不是当页面在浏览器中打开但隐藏在非活动选项卡中时。 有人知道吗? 谢谢。
【问题讨论】:
标签: javascript
如果要查看标签当前是否可见(不是隐藏标签),则可以使用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];
}
})();
【讨论】: