Цитата:
|
А как засечь, что юзер покинул определенный сайт, а не страницу?
|
Через сессию. НО...
Вариант довольно громоздкий, но пока в голове вертится только он.
Каждое новое открывание страницы засекает время и отправляет "я открылся", на что сервер создает отдельного смотрителя(watcher по-аглицки) и отвечает каким-нибудь идентификатором (watcher-ID) для новоиспеченного вотчера. Затем при закрытии страницы будет отправляться "я закрылся спустя <столько-то>, слышишь вотчер-ИДэ?". И соответствующий вотчер зафиксирует значение времени.
Таким образом на сервере будет целая гора вотчеров, у каждого из которых будет хранится свое собственное значение времени. Складывать итоговое время придется с учетом накладок вотчеров, ведь некоторые будут созданы, пока другие еще не зафиксированы, тут просто нужно запоминать время создания и фиксации вотчеров на сервере.
Ну и "покидание" сайта обязательно отразится на сессии. Так что в завершающей функции нужно проконтролировать вотчеры: "убить" незавершенные(будут ли?), правильно рассчитать, что-нибудь еще.
Вот, как бы, пример подсчёта. Детализировать его - Ваша задача.
P.S.
Заинтересован в ознакомлении с рабочей версией.