Аналитика посещения сайта на JS
Уважаемые знатоки JavaScript!
Есть задача: получить информацию о посетителе странички сайта (как это делает допустим счетчик liveInternet), а именно - как долго провел времени посетитель на этой странице с момента его захода, до закрытия сайта. Буду Вам очень благодарен за пример ее решения! |
|
А если система планируется высоконагруженная? не посылает же скрипт liveinternet каждые 10 секунд запрос на сервер.
есть ли еще какие-нибудь решения? |
тогда так:
при входе на страницу засечь время. при выходе отправлять запрос с истекшим временем. на сервере время будет складываться. |
Цитата:
А как засечь, что юзер покинул определенный сайт, а не страницу?:) |
Цитата:
Вариант довольно громоздкий, но пока в голове вертится только он. Каждое новое открывание страницы засекает время и отправляет "я открылся", на что сервер создает отдельного смотрителя(watcher по-аглицки) и отвечает каким-нибудь идентификатором (watcher-ID) для новоиспеченного вотчера. Затем при закрытии страницы будет отправляться "я закрылся спустя <столько-то>, слышишь вотчер-ИДэ?". И соответствующий вотчер зафиксирует значение времени. Таким образом на сервере будет целая гора вотчеров, у каждого из которых будет хранится свое собственное значение времени. Складывать итоговое время придется с учетом накладок вотчеров, ведь некоторые будут созданы, пока другие еще не зафиксированы, тут просто нужно запоминать время создания и фиксации вотчеров на сервере. Ну и "покидание" сайта обязательно отразится на сессии. Так что в завершающей функции нужно проконтролировать вотчеры: "убить" незавершенные(будут ли?), правильно рассчитать, что-нибудь еще. Вот, как бы, пример подсчёта. Детализировать его - Ваша задача. P.S. :) Заинтересован в ознакомлении с рабочей версией. |
Цитата:
на это нельзя повесить событие сессия при этом не закрывается! убивается куки сессии(при стандартных настройках PHP к примеру), но сама сессия еще достаточно долго может прожить(опять-таки зависит от настроек) |
Цитата:
|
Цитата:
И вот метод вычисления на сервере будет направлен на уменьшение погрешности, а не js. Для js важно только отправлять все вовремя. ( load unload ) |
во-первых, есть еще нюанс, что пользователь может находиться на странице дольше, чем продолжительность сессии (т.е. все-таки ajax-запросы нужно посылать изредка). Можно посылать запросы "раз в сессию", если не пришел запрос - сессия была неадекватно закрыта
во-вторых, то, что пользователь не закрыл страницу не значит, что он ее просматривает |
Часовой пояс GMT +3, время: 12:08. |