Спустя 3 минуты, 50 секунд (25.05.2009 - 11:50) Kuliev написал(а):
DenOk
Записывай id сессии и ip адрес и проверяй потом.
Записывай id сессии и ip адрес и проверяй потом.
Спустя 1 минута, 27 секунд (25.05.2009 - 11:52) waldicom написал(а):
А какие идеи есть?
Спустя 4 минуты, 34 секунды (25.05.2009 - 11:56) DenOk написал(а):
Т.е. мне не важно кто именно зашел, важно просто время которое посетитель провел на странице, например с статьей о автомобиле, и в базу к этой статье прибавляю сколько на нем просидели посетители. Сам IP мне не нужен.
Получается сессию открывать при открытии этой сранички, а закрывать когда ее?
Получается сессию открывать при открытии этой сранички, а закрывать когда ее?
Спустя 57 секунд (25.05.2009 - 11:57) FatCat написал(а):
При каждом запросе страницы апдейтить сессию.
В сессии пишется time() апдейта.
В функции апдейта вычитать время прошлого апдейта из текущего time() - это и будет время пребывания на странице.
В сессии пишется time() апдейта.
В функции апдейта вычитать время прошлого апдейта из текущего time() - это и будет время пребывания на странице.
Спустя 4 минуты, 32 секунды (25.05.2009 - 12:02) DenOk написал(а):
спасибо, будем пробовать ...
Спустя 2 часа, 38 минут, 9 секунд (25.05.2009 - 14:40) glock18 написал(а):
Цитата |
При каждом запросе страницы апдейтить сессию. В сессии пишется time() апдейта. В функции апдейта вычитать время прошлого апдейта из текущего time() - это и будет время пребывания на странице. |
Насколько я себе представляю специфику задачи, неверный подход.
Пользователь может открыть страницу, а после попросту закрыть браузер. Либо читать статью 15 минут и так же закрыть браузер. Этот случай не будет учтен.
Можно так:
1. каждую минуту делать запрос к серверу и говорить что-то типа "я читаю уже 1 минуту".
Достаточно сложный, если рассматривать все возможные нюансы. Плюс ко всему придется делать очень много запросов на сервер.
Самый лучший, по-моему, здесь:
в документе установить функцию на событие onBeforeUnload или на onUnload. Это позволит делать всего один запрос, когда документ "выгружается" - это происходит если пользователь переходит по ссылке, напрямую вводит ее в строке запроса или вовсе закрывает браузер. На это событие тебе нужно просто отправить время, которое пользователь провел на странице, на сервер. Ну и в начале загрузки нужно таймер запустить, чтобы время засекал.
Спустя 1 час, 48 минут, 21 секунда (25.05.2009 - 16:28) FatCat написал(а):
Цитата (glock18 @ 25.05.2009 - 14:40) |
Этот случай не будет учтен. |
Зато он и не будет учитывать случай, когда пользователь ушел спать, оставив включенный компьютер; или когда пользователь открыл другое окно браузера, а это забыл закрыть.
Посмотрите как работает гугл-аналитикс. Там такой же подход: фиксируются только заходы на траницу. Если произошел откат, время не фиксируется вовсе.
Спустя 16 часов, 4 минуты, 31 секунда (26.05.2009 - 08:33) glock18 написал(а):
Да, пожалуй, этот подход лучше. В любом случае, оба способа имеют достаточно недостатков... Так сказать, (это про подход гугл-аналитикс и про то что вы предложили) симуляция достаточно близкая к реальности.
Спустя 13 часов, 57 минут, 36 секунд (26.05.2009 - 22:31) HardWoman написал(а):
Цитата |
Зато он и не будет учитывать случай, когда пользователь ушел спать, оставив включенный компьютер; или когда пользователь открыл другое окно браузера, а это забыл закрыть. |
Это уж точно мой вариант