Способ №1.
До этого способа я уже думаю многие догадались, суть его заключается вот в чем: когда пользователь заходит на сайт, мы с помощью JavaScript на событие load объекта window запускаем таймер и в какой-нибудь переменной записываем время посещений. Когда пользователь выходит с сайта и происходит событие unload объекта window мы на сервер посылаем собранное время с использованием технологии AJAX.
Внимание! В этом способе есть одна загвоздка и она существенна. Браузер Opera не поддерживает событие unload объекта window. А это значит, что с помощью этого способа вы ни
как не узнаете сколько времени человек провел на сайте.
Способ №2.
Когда пользователь заходит на сайт, мы все также как и в первом способе запускаем таймер, но теперь каждую секунду мы будем записывать в cookie. Тогда при следующем заходе на сайт, мы проверим cookie и если там будет значение мы отправим его на сервер и начнем отчет сначала, в противном случае мы просто начнем отчет.
Этот способ лишен недостатка первого способа связанного с браузером Opera. Но в этом методе есть другой недостаток, если пользователь посетит сайт лишь один раз, мы так и не сможем узнать, сколько времени он провел, так как не будет повторного посещения, при котором мы сможем отправить на сервер собранные данные.
Способ №3.
Этот способ можно назвать самым прямо-в-лобным, так как суть его заключается в следующем, пользователь заходит на веб-страницу и мы запускаем таймер, внимание! Теперь мы каждые 1-3 секунды отправляем запрос на сервер с подсчитанным секундами.
У этого способа один большой недостаток - постоянное общение с сервером. Зато он лишен недостатков двух предыдущих.
Я предлагаю вашему вниманию простую реализацию 3-го способа, которую выложил здесь. Хотя я вам советуют комбинировать 1, 2 способы и 3-ий использовать только в крайних случаях.
Спасибо за внимание, удачного вам collecttiming`а!
Комментариев нет:
Отправить комментарий