Мне нравится измерять время, которое пользователь потратил на страницу somepartr моего webapp. Сначала я подумал о том, чтобы поймать событие onunload/onbeforeunload в браузере и уведомить сервер через XMLHttpRequest, который пользователь сейчас уходит:
<body onunload="userLeaves('/url/to/current/page',xxx);" ...> ... </body>
где xxx - это inital tiemstamp, когда страница была отображена.
К сожалению, это решение не работает во всех браузерах (например, Opera). Поэтому моя вторая идея заключалась в том, чтобы постоянно пинговать сервер. Чтобы рассчитать время посещения, кто-то должен занять последнее время пинга и вычесть его из временной отметки времени. Но я не думаю, что это хорошее решение, особенно если пользователь имеет 3 или 5 вкладки, и каждая вкладка запускает события каждые 500 мс...
как бы вы измерили время посещения? есть ли у кого-то лучшая идея получить время, потраченное на одну конкретную страницу?