Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   проверка открытой страницы. Т.е. активна ли она в данный момент. (https://javascript.ru/forum/events/29657-proverka-otkrytojj-stranicy-t-e-aktivna-li-ona-v-dannyjj-moment.html)

titan68 06.07.2012 12:34

проверка открытой страницы. Т.е. активна ли она в данный момент.
 
На странице каждые 5 секунд происходит ajax запрос, для обновления статуса. Вопрос: Как можно проверить, активна ли текущая страница в браузере? Чтобы лишний раз не гонять ajax функции, если пользователь не просматривает данную страницу.

Deff 06.07.2012 13:07

titan68,
Поставить события на body
onmouseout/onmouseover
По onmouseout - отключать запросы
---------------------------------------
по onmouseout сбрасывать флаг разрешения запросов с 5-секундной задержкой
Пр onmouseover сбрасываем таймер сброса флага /clearTimeout(TimerID) и устанавливаем флаг в true , тогда кратковременные уходы курсора сo вкладки на 1-2 секунды не будут дергать режимы подгрузки
------------------------------------------
Ситуация не под контролем - если вкладка открыта - но находиться в сжатом виде на части экрана- а пользователь занят своими делами на рабочем столе ( как выход слайдер - проигрыватель предыдущих запросов( можно сохранить в window.name, при отсутствии мыши, крутить слайдер из сохранённой в window.name инфе

devote 06.07.2012 13:51

Page Visibility API

devote 06.07.2012 13:54

window.onblur = function () {document.title='документ неактивен'}
window.onfocus = function () {document.title='документ снова активен'}

Deff 06.07.2012 14:03

devote,
Ну сюды тады навернуть и history, если вкладка в центре
посколь переход с предыдущей (или ток в Опере?) .onfocus не вызывает

devote 06.07.2012 14:17

Цитата:

Сообщение от Deff
devote,
Ну сюды тады навернуть и history, если вкладка в центре
посколь переход с предыдущей (или ток в Опере?) .onfocus не вызывает

ну понятно дело что это хреновый костыль. Но подрихтовать его можно.. А там где есть поддержка Page Visibility API юзать его

Deff 06.07.2012 14:22

devote,
ну не наю - но вродь по onmouseout/onmouseover(с задержками) достаточно логично если нет долго курсора - наф там активные дерги сервера ?

titan68 06.07.2012 14:39

Спасибо всем за помощь,
Думаю window.onblur, window.onfocus пока вполне подойдет.

Deff 06.07.2012 15:16

Цитата:

Сообщение от devote
Но подрихтовать его можно..

:) Ксать рихтовка (с минималистичным кодом) достаточно интересна
в качестве востребованности для функции Чат(не гонять запросы с непросматриваемых страниц


Часовой пояс GMT +3, время: 04:35.