|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Oct 2010
Сообщений: 53
|
Как отследить закрытие окна или вкладки браузера?
Существует ли событие в flash builder 4.5 которое перед закрытием окна или вкладки браузера вызывает окно подтверждения выхода из страницы? Например, когда приложение загружается, в базу данных записывается уникальный id пользователя. А когда пользователь закрывает браузер, id нужно удалить из базы.
|
|
|||||
Регистрация: Oct 2010
Сообщений: 53
|
С добавлением все в порядке. А как тогда отследить умирание сессии?
|
|
|||||
Регистрация: Jan 2010
Сообщений: 211
|
Слушатель сессий на сервере. Одно "но": обычно сессия устанавливается по дефолту на приличное время, в течении которого будет висеть. Если устроит, чтобы это было минут через 40, дерзай.
А так обычно используют событие onbeforeunload, которое сейчас поддерживается всеми браузерами. Но это все равно "костыли". В идеале структура проекта так должна строиться, чтобы слушать только сессию (тут тоже есть "нюансы" - повторный вход в проект с того же открытого браузера будет в той же сессии, что необходимо учитывать). И то - смысл? Нужно, чтобы что-то работало пока пользователь "на связи" - для этого есть сессия, в которой можно хранить параметры. Нет данного пользователя - нет сессии. |
|
|||||
Регистрация: Oct 2010
Сообщений: 53
|
Тогда сессии не подходят...Насколько я понимаю onbeforeunload это javascript событие. Как мне его связать с flex приложением?
|
|
|||||
Регистрация: Jan 2011
Сообщений: 46
|
Поставь в приложении на таймер запрос скрипта. Этим скриптом пиши в базу время последнего конекта и если разница между "сейчас" и "тогда" больше N = юзер вышел.
|
|
|||||
Регистрация: Jun 2011
Сообщений: 212
|
Цитата:
Более того, даже js вам ничего не гарантирует (на момент закрытия страницы у юзера может оборваться коннект, зависнуть браузер и т.п.). Отслеживать умирание сессии тоже большого смысла нет, т.к. это самое умирание - не более чем некий "промежуток времени". Вот и используйте это - сохраняйте вместе с id метку времени (например, "от последнего обращения флеша к серверу"). И удаляйте из базы id с неактивностью больше суток или что то вроде этого. |
|
|||||
Регистрация: Oct 2010
Сообщений: 53
|
Спасибо, такой вариант я уже использую - но он не точный. Поставил на Cron задание запускать php скрипт каждые 3 минуты, который удаляет id где разница во времени между "сейчас" и "тогда" больше N. Нужна максимальная точность...Тем более это текстовый чат. а если юзер переписываться будет полчаса, а удаляться будет все, где разница во времени 3 мин?
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Поддерживать сокет соединение.
|
|
|||||
Регистрация: Oct 2010
Сообщений: 53
|
А каким образом? Разве Flex поддерживает работу с сокетами?
|
Часовой пояс GMT +4, время: 00:13. |
|
« Предыдущая тема | Следующая тема » |
|
|