Кроссбраузерный onBeforeUnload
Уважаемые форумчане!
Может кто-нибудь знает, как можно выполнить функцию по закрытии страницы в любом браузере? Как вариант можно обращаться через небольшие интервалы к функции до тех пор, пока страница не закроется, но на это нет ресурсов, т.к. функция делает запрос на сервер. Необходимо подсчитать время, проведенное юзером на сайте. Интересно, как это делают системы подсчета статистики, типа ли.ру и аналитика.. может кто в курсе, поделитесь, пожалуйста, информацией. Спасибо! |
Цитата:
затем, раз в секунду в другую куку пишите текущее время. при загрзке следующей страницы, будет передана информация о времени проведенном на текущей странице |
Дело в том, что даже если и не будет загрузки следующей страницы, информацию о времени пребывания посетителя на текущей странице необходимо получить.
|
Цитата:
Событие закрытия броузера Вы не отследите, потому что его нет. Также как и выключения интернета у пользователя и выключения им компьютера из розетки. ;) Но есть способ отслеживать активность пользователя и время его пребывания на сайте. С какой точностью это надо делать? Предположим с точностью 1 минута. Тогда на каждой странице должна быть функция, посылающая сигнал на сервер раз в минуту "я жив". Вот по последней метке можно определить, когда Клиент отключился. |
Это, как вариант я оговорил в первом посте, но он достаточно ресурсоемкий в данной задаче будет, в том смысле, что нагрузка на сервер будет большая от таких частых запросов*количество сайтов*количество посетителей этих сайтов, тем более, что точность до секунды нужна (ну +/- несколько секунд). Понятно, что можно реализовать серверную часть красиво и с умом, но все же хочется знать, а вдруг есть более изящное решение, не требующее таких затрат.
|
Не знаю, что Вы называете "более изящным", т.к. у каждого свой вкус... ;)
Решения есть разные. Возможная альтернатива - это WebSockets. Новое веяние от Гугл. Почитать можно здесь: http://habrahabr.ru/blogs/webdev/41223/ |
То, что надо! Спасибо огромное!
|
Цитата:
|
В Опере onbeforeunload, насколько я помню, срабатывает только при переходе по внутренней ссылке.
Вебсокетов, емнимс, в ней тоже нет. Если уж настолько нужно отслеживать время пребывания пользователя, могу лишь посоветовать лонг-поллы. Кстати, есть готовые сервисы типа веб-визора. |
Часовой пояс GMT +3, время: 00:24. |