суббота, 4 сентября 2010 г.

Сколько времени пользователь провел на сайте?

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

Способ №1. 

До этого способа я уже думаю многие догадались, суть его заключается вот в чем: когда пользователь заходит на сайт, мы с помощью JavaScript на событие load объекта window запускаем таймер и в какой-нибудь переменной записываем время посещений. Когда пользователь выходит с сайта и происходит событие unload объекта window мы на сервер посылаем собранное время с использованием технологии AJAX. 

Внимание! В этом способе есть одна загвоздка и она существенна. Браузер Opera не поддерживает событие unload объекта window. А это значит, что с помощью этого способа вы ни  
как не узнаете сколько времени человек провел на сайте. 

Способ №2. 

Когда пользователь заходит на сайт, мы все также как и в первом способе запускаем таймер, но теперь каждую секунду мы будем записывать в cookie. Тогда при следующем заходе на сайт, мы проверим cookie и если там будет значение мы отправим его на сервер и начнем отчет сначала, в противном случае мы просто начнем отчет. 

Этот способ лишен недостатка первого способа связанного с браузером Opera. Но в этом методе есть другой недостаток, если пользователь посетит сайт лишь один раз, мы так и не сможем узнать, сколько времени он провел, так как не будет повторного посещения, при котором мы сможем отправить на сервер собранные данные. 

Способ №3. 

Этот способ можно назвать самым прямо-в-лобным, так как суть его заключается в следующем, пользователь заходит на веб-страницу и мы запускаем таймер, внимание!  Теперь мы каждые 1-3 секунды отправляем запрос на сервер с подсчитанным секундами.

У этого способа один большой недостаток - постоянное общение с сервером. Зато он лишен недостатков двух предыдущих. 

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

Спасибо за внимание, удачного вам collecttiming`а!



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

Отправить комментарий