Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.04.2020, 10:07
Новичок на форуме
Отправить личное сообщение для Димол Посмотреть профиль Найти все сообщения от Димол
 
Регистрация: 05.04.2020
Сообщений: 8

Как объединить setInterval и window.onfocus
Добрый день!
У меня есть скрипт:
function mode() {
............
$(function() {
mode();
});
setInterval(mode, 10000);

который запускает function mode() каждые 10 сек, начиная с нулевой

Надо сделать, что бы была еще проверка на нахождение пользователя на этой странице.
Т.е. function mode() должна запускаться при совпадении двух условий - срабатывание таймера на 10 сек и нахождение пользователя на странице.

Попробовал вот так:

function mode0() {window.onfocus = function (mode);}
setInterval(mode0, 10000);

Но не работает. Как сделать правильно?
Использование именно window.onfocus не обязательно
Ответить с цитированием
  #2 (permalink)  
Старый 05.04.2020, 10:38
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,720

Можно использовать document.visibilityState

document.visibilityState === 'visible'
Если страница находится на открытой вкладке и окно браузера не минимизировано.
В противном случае document.visibilityState === 'hidden'
Ответить с цитированием
  #3 (permalink)  
Старый 05.04.2020, 11:00
Новичок на форуме
Отправить личное сообщение для Димол Посмотреть профиль Найти все сообщения от Димол
 
Регистрация: 05.04.2020
Сообщений: 8

А можно поконкретнее, куда и что подставить.
Тогда сразу и попробую.
Я работаю только с PHP, а в javascript полный ноль.
Ответить с цитированием
  #4 (permalink)  
Старый 05.04.2020, 11:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Димол,
function mode()
{

};
function loop() {
   document.visibilityState === 'visible' && mode();
   setTimeout(loop, 10000);
};
addEventListener( "DOMContentLoaded" , loop);
Ответить с цитированием
  #5 (permalink)  
Старый 05.04.2020, 16:58
Новичок на форуме
Отправить личное сообщение для Димол Посмотреть профиль Найти все сообщения от Димол
 
Регистрация: 05.04.2020
Сообщений: 8

Непонятно, но здорово.
Все работает.
Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить результат от ajax запроса (из отдельного файла) 1Feniks1 AJAX и COMET 0 12.03.2017 18:45
Как создать цитатник? WGN Общие вопросы Javascript 10 29.01.2017 01:39
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35
Как объединить несколько похожих скриптов в один? teragalaxy Элементы интерфейса 8 11.02.2014 15:37
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29