Монитор времени ожидания бездействия Javascript

#javascript #jquery #html #ajax #jquery-plugins

#javascript #jquery #HTML #ajax #jquery-плагины

Вопрос:

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

Я использую этот плагин Jquery http://plugins .jquery.com/project/timeout который запускает таймер при загрузке страницы, и если в течение 30 секунд не было сделано никаких вызовов ajax, то отображается предупреждающее сообщение. Это предупреждающее сообщение:

 else {
            alert('Session timed out.');
            T.reload();
        }
  

Мне нужно добавить к этому что-то дополнительное, чтобы, если эта кнопка предупреждения не будет нажата в течение 5 минут, она каким-то образом уведомит головной офис о том, что пользователь не активен. Как бы мне добавить туда еще один таймер и функцию?

Спасибо за любую помощь

Комментарии:

1. 30 секунд звучит как очень короткое время для тайм-аута сеанса. Почему бы вам не продлить этот первоначальный тайм-аут до 5 минут, а затем вместо (или непосредственно перед) существующим предупреждением вы можете добавить некоторый код, чтобы вызвать Ajax-вызов «этот работник отключается» для «уведомления головного офиса». Конечно, вам, очевидно, потребуется какой-то процесс для обработки этого на стороне сервера (отправляет ли он электронное письмо, сохраняет запись в базе данных или что-то еще).

Ответ №1:

Вы не можете, javascript alert() блокирует все скрипты и ввод, пока они не будут отклонены. Чтобы сделать то, что вы хотите, взгляните на диалоговое окно пользовательского интерфейса jQuery или покажите свое сообщение как часть DOM самостоятельно.

Комментарии:

1. Спасибо, я загляну в диалоговое окно пользовательского интерфейса.

Ответ №2:

Вместо использования ‘alert’ вы можете показать слой (‘div’) с кнопкой, прослушивающей событие ‘onclick’, так что вы сможете узнать, когда пользователь нажал кнопку.