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