Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Отловить закрытие браузера


Автор: champion 12.6.2006, 12:50
Каким образом можно отловить, когда юзер закрывает браузер? И послать в этот момент запрос на сервер? 

Автор: Sardar 12.6.2006, 13:23
champion, хочешь убить сессию "правильно"? Угадай сколько раз уже задавался этот вопрос?  smile 

По идее никак, окошко новые браузеры будут блокировать, ну только ИЕ6 без сервиспаков window.open на onbeforeunload пропустит. Фишки AJAX'а очень часто меняються, может запрос по XMLHttpRequest на onbeforeunload будет проходить, весьма полезная штука. Есть минусы:
  • срабатывать будет всегда, даже когда ты просто перезагружаешь страничку. Уже спрашивали, по моему единственное решение было грубой силой, перебрать все ссылки и ловить переходы. Если пользователь вобьёт адрес в ручную то всё равно сработает "выход"...
  • редкий браузер позволит тебе долго пытаться выполнить запрос при лагах сети. Согласись дико смотриться браузер на закрытие кидающийся в сеть и повесившийся на пару минут.
  • вряд ли это будет поддерживаться всеми, Опера сразу скажет нет из идейных соображений - пользователь не любит когда прога/страница делает внезапные коннекты. И это правильно, сессии лучше закрывать по старинке по таймауту.
 

Автор: pythonwin 12.6.2006, 13:53
Прошу прощения! 
Как я понял - простого и элегантного решения этой проблемы НЕТ? smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)