Как мы вызываем сервент выхода из события закрытия браузера

Как я могу обработать событие закрытия браузера, чтобы вызвать выход из системы?

Некоторое время назад я искал последовательное решение этой проблемы, и мое решение состояло в том, чтобы справиться с ситуацией, не веря браузеру или пользователю.

Вы не можете точно знать, покидает ли пользователь вашу страницу и когда, и даже если вы используете «onunload», вы не можете получить это событие до того, как браузер закроется или покинет вашу страницу. И сбои браузеров не выдадут вам никакого сигнала, поэтому, полагая, что вы знаете, что пользователь все еще просматривает вашу страницу и может предпринять любые дальнейшие действия, является ошибочным.

Лучшее, что вы можете сделать для выхода из системы, – это установить время ожидания сеанса, и если вам нужен дополнительный контроль, вы можете попробовать добавить вызовы AJAX на критические страницы с сигналами «Я жив», а затем вывести пользователей, которые не являются (что потребует браузера с поддержкой AJAX / JS и может исключить потенциальных пользователей).

Вы ищете onunload:

window.onunload = function() { // check the window is closed (see point 1 below) // do log out } 

Есть две проблемы с этим:

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

Я рекомендую использовать другой подход.

Вы должны пойти с таймаутом сеанса. Поскольку вы отметили свой JSP-вопрос, я думаю, что это веб-приложение java, о котором вы говорите.

У вас обычно есть прослушиватель тайм-аута сеанса, а в вашем слушателе есть код выхода.

Как правило, не полагайтесь на события на стороне клиента: сбои браузера / системы, выключение без закрытия браузера и т. Д. Не инициирует события.

  • Как передать символы Юникода как JSP / Servlet request.getParameter?
  • Конкатенация строк в JSF / JSP EL и Javascript
  • Как передать параметр в jsp: включить через c: set? Каковы области переменных в JSP?
  • Включите другой JSP-файл
  • Как получить параметры из URL с JSP
  • Как пропустить HashMap в JSP?
  • Загрузка файла с помощью parseRequest от ServletFileUpload?
  • Как избежать Java-кода в JSP-файлах?
  • Как сделать if-else в Тимелеафе?
  • Как использовать servlets и Ajax?
  • Как заменить символы новой строки с помощью JSP и JSTL?
  • Давайте будем гением компьютера.