Как долго пользователь находится на странице asp.net (пользовательская аналитика)? - PullRequest
0 голосов
/ 06 октября 2009

Я пытаюсь найти способ измерить, как долго пользователь находился на странице в моем приложении ASP.NET. Я храню идентификатор пользователя, имя_папки, время_страницы и время_страницы в базе данных. Каждая запись также имеет свой уникальный идентификатор, называемый featureuselogid.

В данный момент я могу отслеживать, когда пользователь заходит на страницу с помощью функции page_load на стороне сервера. Я храню идентификатор пользователя, имя страницы и время страницы.

После этого я застрял и нуждаюсь в руководстве в правильном направлении. Мне нужно записать время, когда пользователь покидает страницу. Я знаю, что в javascript есть функция window.onbeforeunload, которая покрывает большинство случаев (завершение работы браузера, ссылки и т. Д.).

Но как мне передать featureuselogid в javascript? Если я смогу это сделать, я думаю, что смогу сделать вызов веб-службы из javascript и обновить запись с помощью pagelefttime.

Я иду по неверному пути?

Приветствия заранее.

Ответы [ 3 ]

2 голосов
/ 06 октября 2009

Вам нужно будет запустить таймер Javascript на клиенте, который периодически вызывает сервер. Если звонок не регистрируется в ожидаемое время, это означает, что пользователь ушел. Woopra делает это, и это работает надежно. Например, иногда люди загружают страницу в браузере в фоновом режиме в течение нескольких дней, и нет другого способа определить, что они все еще подключены.

Пользователи на ноутбуках, тянущие за сетевой кабель, выходящие из зоны покрытия Wi-Fi и т. Д., Имеют слишком много сценариев, когда событие onbeforeunload больше не достигает сервера.

1 голос
/ 06 октября 2009

Просто поместите featureuselogid в скрытое поле на странице с уникальным идентификатором, который сделает его доступным для Javascript, или установите переменную javascript.

Сказав это, я верю, что вы сможете наиболее надежно обнаружить Page_Load. Вы можете определить время между страницами, измерив время между Page_Load событиями. Вы не получите закрытие браузера, но IMO, зная, когда пользователь закрывает браузер, не так уж и значим.

0 голосов
/ 06 октября 2009

Когда вы отображаете страницу в ASP.net, включите тег javascript, который присваивает значение переменной сценария на стороне сервера:

<script language="javascript">
    var JS_featureuselogid = <%= featureuselogid %>;
</script>

Позже в своем коде javascript вы можете ссылаться на переменную JS_featureuselogid и получать значение, которое было введено в нее во время построения страницы.

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