Сделайте что-нибудь перед закрытием окна браузера - PullRequest
1 голос
/ 12 мая 2010

у нас есть веб-приложение, встроенное во флэш-память (на самом деле оно только собирается: D), где очень важно получать уведомления, когда пользователь закрывает свое окно.

Так как оно во флэш-памяти, мы не беспокоимсяЧто касается Javascript, мы не поддерживаем пользователей, не поддерживающих javascript.

Какой самый безопасный (то есть он на 100% уверен, что его вызывают) способ X-браузера вызывать php-скрипт для закрытия сессии, вносить некоторые изменения в БД и т. д.?

Спасибо

Ответы [ 5 ]

3 голосов
/ 12 мая 2010

Не существует метода, который на 100% работает. Вы не можете получить сигнал от клиента, если есть проблема с сетью, отключение питания и т. Д.

Периодически запускайте скрипт очистки (на основе времени, а не активности), который выполняет все удаления и т. Д. Для сеансов, которые не выполнялись в течение X минут.

0 голосов
/ 12 мая 2010

Нет 100% надежного способа обнаружить это. может быть возможным (другие могут, возможно, уточнить это) для выполнения некоторого вызова AJAX на событии onunload, которое вы можете использовать для выполнения некоторой очистки, но вы не можете полагаться на это. Браузеры могут аварийно завершать работу или демонстрировать непредвиденное поведение. Или пользователи могут просто не закрывать браузер в течение очень долгого времени.

0 голосов
/ 12 мая 2010

При использовании jQuery вы можете использовать пример, размещенный здесь Вызов URL до закрытия окна браузера

Основная идея этого сделать ajax-запрос, когда окно / вкладка закрывается.

0 голосов
/ 12 мая 2010

Нет способа гарантировать это. Самое близкое, что вы можете получить - это что-то делать в событиях onunload или beforeunload.

0 голосов
/ 12 мая 2010

Вероятно, вы ищете события onbeforeunload и / или onunload. Возможно, вы можете отключить ajax-вызов, но он может быть прерван, когда страница действительно загружена.

Если обнаружения пользователей, покидающих ссылку, достаточно, просто отключите запрос ajax в $('a[href]').click(...);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...