Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обработчик закрытия окна (https://javascript.ru/forum/misc/6631-obrabotchik-zakrytiya-okna.html)

nark03 10.12.2009 16:29

Обработчик закрытия окна
 
Есть така задача, чтоб когда пользователь закрывал страницу в базу даных передавалось время выхода с страницы. Обьясните пожалуйста каким образом можна перехватить событие закрытие вкладки, чтоб можна было отослать информацию.

Gvozd 10.12.2009 17:41

кроссбраузерно никак

B~Vladi 10.12.2009 18:12

Делают так: запоминают последний запрос к серверу. Погрешность не большая.

nark03 10.12.2009 22:12

Цитата:

Сообщение от B~Vladi (Сообщение 37627)
Делают так: запоминают последний запрос к серверу. Погрешность не большая.

Обьясните по подробнее пожалуста, можна ли это реализовать без серверной части?

B~Vladi 10.12.2009 22:55

Цитата:

Сообщение от nark03
можна ли это реализовать без серверной части?

Цитата:

Сообщение от nark03
когда пользователь закрывал страницу в базу даных передавалось время выхода с страницы

В каких тогда базах собираетесь хранить?! В локальных?:)

nark03 10.12.2009 23:20

Не правильно выразился)) Хотел сказать можна ли это реализовать со стороны клиента, если нет то можна ли както чтоб на сервере скрипт выполнялся автоматически без обращения к нему? Например с заданым периодом проверяло есть ли юзер сейчас на сайте. Допустим создам таблицу в которую со стороны клиента будет отсылатся через 5 секунд что он онлайн. А на сервере чтоб выполнялась проверка автоматом по базе, если юзера например нету больше чем 20 секунд то удалить с таблицы. Может все что я пишу есть бред, так и скажите не обижусь, ибо новичок.

B~Vladi 10.12.2009 23:33

Цитата:

Сообщение от nark03
можна ли както чтоб на сервере скрипт выполнялся автоматически без обращения к нему?

На эту тему можно почитать здесь:
http://javascript.ru/ajax/server-push
Цитата:

Сообщение от nark03
со стороны клиента будет отсылатся через 5 секунд что он онлайн

Опять же ты себе противоречишь. Откуда слать запросы? С сесвера или с клиента?!
Если второе - http://javascript.ru/tutorial/ajax

micscr 11.12.2009 09:48

Интересно как с сервера слать запросы клиенту?
Никогда о таком не слышал, в php например. Это нужно же постоянное соединение. Может Java?
Цитата:

можна ли как то чтоб на сервере скрипт выполнялся автоматически без обращения к нему?
cron

Вообще каждые 5 сек. слать аякс запрос на сервер - жестоко для сервера по моему.
Лучше как Влади и говорил:
1) Зашел наш пользователь - запомнилось в табличке Х его время захода.
2) Зашел любой пользователь - табличка Х проверилась и все что старше 20 сек удалилось или как покинутое обозначилось - вот и нет пользователя online. И cron не нужен.

nark03 11.12.2009 11:05

Просто я пишу чат на Flash. Задача моя состоит в том чтобы выводились все пользователи онлайн, по таймеру через каждые 10 секунд отсылает Flash запросы PHP, тот проверяет базу, и выводит всех кто сейчас онлайн. Но если человек вышел, то информация собственно не удаляется, можна конешно повесить на флеш кнопку выход, но не факт что все будут ей пользоватся, по этому нужно какоето решение. Если вопрос не сюда извените)).

Gvozd 11.12.2009 12:38

блин
типа так не судьба сделать?
DELETE FROM users WHERE last_time<TIME()-20


Часовой пояс GMT +3, время: 19:33.