Подсчет времени, когда пользователь был подключен к сайту - PullRequest
1 голос
/ 18 мая 2011

В настоящее время я использую этот SQL, чтобы проверить, подключен ли пользователь:

date_add(last_activity, INTERVAL 3 MINUTE) > NOW()

Это пассивно и срабатывает только при загрузке страницы.

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

Что вы предлагаете для этого?Использовать опрос или другой подход?

Ответы [ 4 ]

2 голосов
/ 18 мая 2011

Вам необходимо использовать какой-нибудь java-скрипт, который будет сообщать о вашей активности с помощью ajax на ваш сайт с интервалами примерно в 1 минуту.Вам нужно реализовать какой-то механизм, чтобы проверить, активен ли пользователь, например, движется ли мышь или прокручивается ли страница, потому что некоторые пользователи могут использовать одну и ту же страницу в течение длительного времени.Если страница не используется с последней минуты (это должна быть глобальная переменная в javascript, значение true при каждом движении мыши и значение false при каждой отправке сообщения), вы не отправляете сообщение.
Когда вы получаетеajax-уведомления на сервере, который вы проверяете время между последним ajax-уведомлением (должно быть сохранено в базе данных) и текущим уведомлением, и если оно меньше интервала (возможно, 2 минуты), дают пользователю баллы за него.

1 голос
/ 18 мая 2011

Хорошо.Так вот моя идея.Как я упоминал в комментарии, мой путь - это время ожидания javascript и AJAX.
Так что идея будет выглядеть примерно так:

  1. Создайте глобальную переменную для положения мыши.
  2. Setвремя ожидания срабатывания функции с интервалом около 10 секунд (которое может увеличиваться во времени).
  3. Функция сравнивает последнюю позицию мыши с текущей позицией мыши.Если он изменился, пользователь предположительно активен.
  4. Обновить глобальную переменную для положения мыши.И отправляйте данные на сервер.
  5. Ополаскивайте и повторяйте ...

На самом деле, если хотите, то что-то изменилось, может быть что угодно, но я думаю, что положение мыши было бы наиболее подходящим.

1 голос
/ 18 мая 2011

Возможно, я здесь слишком упрощен, и это, вероятно, мало поможет, если вы пытаетесь потратить время на сайте или что-то в этом роде, но об этом заботится Google Analytics.Время на сайте - показатель, который они активно записывают.

1 голос
/ 18 мая 2011

Как уже говорилось, вы можете использовать AJAX и, в качестве альтернативы, обновить мета-тег. Обратите внимание, что если я вижу, что вкладка браузера постоянно обновляется, я закрываю ее, поскольку она отвлекает. Конечно, если вы предлагаете услугу, которая требует частых обновлений (чат / чат, тикер), то это менее тревожно.

В настоящее время у меня открыто 14 вкладок, некоторые из которых в течение нескольких дней я не изучал, поэтому вам нужно спросить, насколько ценна ваша информация. Насколько я знаю, javascript не может получить текущую позицию мыши, если он не перемещается по чему-то, для которого обработано событие mousemove, поэтому реализация «это страница в поле зрения, и пользователь перемещает ее мышь» может оказаться причиной события, когда пользователь активен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...