2013-12-16 3 views
1

есть ли способ узнать, используется ли моя страница сейчас? Я имею в виду, если это на экране пользователя. вкладка со страницей активна на экране. У меня есть поток данных сервера-клиента, и я хочу его оптимизировать. Я хочу, чтобы данные протекали, только если пользователь просматривает страницу, а не когда страница открыта в браузере, но скрыта на неактивной вкладке. Кто-нибудь знает? Спасибо.Как узнать, используется ли моя страница?

ответ

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

Смежные вопросы