Как сделать, чтобы мой список Live Feed обновлялся только на активной вкладке или обновлял его, когда вкладка снова становится активной? - PullRequest
1 голос
/ 23 марта 2012

У меня есть окно Live Feed JQuery, которое обновляется каждые 10 секунд и помещает на сайт последние комментарии сверху.Это работает нормально: jquery делает Ajax-запрос, вызывает PHP, который возвращает новые элементы или их нет.

Это поле похоже на боковую панель, оно есть на каждой странице моего сайта.Моя проблема в том, что если пользователь открывает много страниц на сайте, каждая открытая вкладка будет выполнять это автоматическое обновление, пока он не закроет эту вкладку.Таким образом, с несколькими десятками пользователей, каждый из которых открывает много страниц, это становится проблемой, даже если Live Feed хорошо оптимизирован, а SQL-запрос за ним быстрый (0,0005 секунд на запрос).Кроме того, если пользователь оставляет браузер открытым с несколькими открытыми вкладками и начинает просматривать где-то еще, или смотрит фильм, который они будут обновлять вечно, или пока он не закроет их.этот?Могу ли я обновлять фид, только если его вкладка / окно видимы / активны?Есть ли событие, которое сработает, если оно было неактивным, а теперь снова активным?

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Хотя я использовал это Определение фокуса окна браузера и я делюсь им здесь для всех, кому это нужно без jquery, я приму ответ выше, потому что это кажется элегантным и ясным решением длямоя оригинальная проблема.

0 голосов
/ 23 марта 2012

Попробуйте добавить событие onFocus в объекте окна, чтобы инициировать ваши обновления, и добавить onBlur, чтобы прекратить обновление ваших живых лент.

Поскольку вы используете jquery, вы можете сделать это

$(window).('focus',function(){
  //do updates
})

$(window).('blur',function(){
  //stop updates
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...