Обработчик закрытия окна
Есть така задача, чтоб когда пользователь закрывал страницу в базу даных передавалось время выхода с страницы. Обьясните пожалуйста каким образом можна перехватить событие закрытие вкладки, чтоб можна было отослать информацию.
|
кроссбраузерно никак
|
Делают так: запоминают последний запрос к серверу. Погрешность не большая.
|
Цитата:
|
Цитата:
Цитата:
|
Не правильно выразился)) Хотел сказать можна ли это реализовать со стороны клиента, если нет то можна ли както чтоб на сервере скрипт выполнялся автоматически без обращения к нему? Например с заданым периодом проверяло есть ли юзер сейчас на сайте. Допустим создам таблицу в которую со стороны клиента будет отсылатся через 5 секунд что он онлайн. А на сервере чтоб выполнялась проверка автоматом по базе, если юзера например нету больше чем 20 секунд то удалить с таблицы. Может все что я пишу есть бред, так и скажите не обижусь, ибо новичок.
|
Цитата:
http://javascript.ru/ajax/server-push Цитата:
Если второе - http://javascript.ru/tutorial/ajax |
Интересно как с сервера слать запросы клиенту?
Никогда о таком не слышал, в php например. Это нужно же постоянное соединение. Может Java? Цитата:
Вообще каждые 5 сек. слать аякс запрос на сервер - жестоко для сервера по моему. Лучше как Влади и говорил: 1) Зашел наш пользователь - запомнилось в табличке Х его время захода. 2) Зашел любой пользователь - табличка Х проверилась и все что старше 20 сек удалилось или как покинутое обозначилось - вот и нет пользователя online. И cron не нужен. |
Просто я пишу чат на Flash. Задача моя состоит в том чтобы выводились все пользователи онлайн, по таймеру через каждые 10 секунд отсылает Flash запросы PHP, тот проверяет базу, и выводит всех кто сейчас онлайн. Но если человек вышел, то информация собственно не удаляется, можна конешно повесить на флеш кнопку выход, но не факт что все будут ей пользоватся, по этому нужно какоето решение. Если вопрос не сюда извените)).
|
блин
типа так не судьба сделать? DELETE FROM users WHERE last_time<TIME()-20 |
Часовой пояс GMT +3, время: 19:33. |