<MyRusakov.ru />

JavaScript, jQuery и Ajax с Нуля до Гуру

JavaScript, jQuery и Ajax с Нуля до Гуру

Видеокурс "JavaScript, jQuery и Ajax с Нуля до Гуру" научит Вас "вдыхать жизнь" в страницы, делая их с потрясающими эффектами и максимальным удобством для пользователя.

Курс научит Вас писать скрипты на JavaScript, а также обучит использованию библиотеки jQuery и технологии Ajax.

Практически любой красивый сайт (с красивыми галереями изображений, слайдерами, плавными переходами и так далее) использует jQuery. А практически на любом серьёзном сайте вовсю используется технология Ajax, которая делает работу с сайтом максимальной удобной.

Поэтому курс "JavaScript, jQuery и Ajax с Нуля до Гуру" Вам просто необходим, если Вы хотите создавать по-настоящему достойные сайты.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Событие неактивности пользователя в JavaScript

Событие неактивности пользователя в JavaScript

Иногда бывает нужно определить активен пользователь на странице или нет. Например, если у Вас на сайте есть чат, то глупо обновлять его, например, каждые 5 секунд, нагружая сервер, если пользователь ушёл в магазин, а сайт не закрыл, или же перешёл на другую вкладку. В этой статье мы поговорим, как можно определить активность пользователя на странице.

Оптимальным решением было бы определять активность вкладки с нашим сайтом. То есть если открыта вкладка с нашим сайтом, то пользователь активен, иначе нет. Однако, нормального инструмента для реализации подобного в JavaScript нет. Вдобавок, это не защищает от походов в магазин.

Поэтому мы разберём универсальный метод по выяснению активности пользователя на JavaScript. Его особенностью является то, что если пользователь отлучится от компьютера, оставив даже открытым наш сайт, всё равно он будет признан неактивным, что очень хорошо. Многие из Вас уже, наверняка, догадались, что основной инструмент определения активности пользователя - это движение мышью.

Если мышь двигается, значит, пользователь активен, а если она определённое время не двигается, значит, пользователь не активен, или перешёл уже давно на другую вкладку.

Реализация этого алгоритма приведена в следующем коде:

<script type="text/javascript">
  var no_active_delay = 30; // Количество секунд простоя мыши, при котором пользователь считается неактивным
  var now_no_active = 0; // Текущее количество секунд простоя мыши
  setInterval("now_no_active++;", 1000); // Каждую секунду увеличиваем количество секунд простоя мыши
  setInterval("updateChat()", 1000); // Запускаем функцию updateChat() через определённый интервал
  document.onmousemove = activeUser; // Ставим обработчик на движение курсора мыши
  function activeUser() {
    now_no_active = 0; // Обнуляем счётчик простоя секунд
  }
  function updateChat() {
    if (now_no_active >= no_active_delay) { // Проверяем не превышен ли "предел активности" пользователя
      alert("Пользователь не активен"); // В реальности стоит убрать, а здесь дано как доказательство того, что всё работает
      return;
    }
    /* Обновляем чат */
  }
</script>

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

Однако, у этого способа имеется один большой недостаток. Ведь пользователь необязательно будет двигать мышью - он может элементарно читать текст или смотреть видео, или же ждать ответа в чате (чего он не увидит, если к мыши не прикоснётся). Исходя из этого не стоит выбирать слишком маленький "предел активности" пользователя. Лично я ставлю 30 секунд, хотя зависит всё от Вашего сайта, возможно, стоит поставить и 120 секунд или даже больше. А, возможно, у Вас такой мощный сервер или такая низкая посещаемость, что и вовсе не нужно вычислять активен пользователь или нет.

Вот такое необычное событие неактивности пользователя в JavaScript можно сделать самостоятельно.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

loginxxx loginxxx 25.09.2013 16:05:13

Спасибо!

Ответить

dsmts dsmts 26.09.2013 20:01:50

А как данный скрипт будет работать на планшетах и смартфонах?

Ответить

Admin Admin 01.10.2013 21:23:07

Не тестировал.

Ответить

kakaha kakaha 04.08.2015 06:57:39

как сделать переход на сайт вместо алерта и добавить исключение домена где не будет работать таймер

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.