2016-08-19 2 views
2

У меня есть сайт на основе jsp, где я отслеживаю время входа в базу данных mysql. Я также отслеживаю время выхода из базы данных mysql. Но время выхода из системы работает только в том случае, если пользователь отправляется на выход с помощью соответствующего метода, нажав кнопку выхода. Если пользователь напрямую закрывает браузер, то я не могу отслеживать время выхода из системы. Пожалуйста, помогите.Как отслеживать активность выхода, когда пользователь напрямую закрывает браузер

ответ

0

Типичный подход для этой ситуации - использовать монитор Heart-beat. Краткая идея: отправить каждый конкретный запрос периода времени на сервер из кода клиента (через AJAX). Когда следующий запрос не поступит, вы поймете, что пользователь закрыл свой браузер.

Вы также можете прочитать об этом здесь: http://softwareas.com/heartbeat-pattern-supporting-library/

0

Что может быть вашим критериям ошибок в отслеживании времени?

Если это может быть сделано до 30 минут, вы можете сделать это с помощью HttpSessionBindingListener. который будет

Иначе, если это действительно до 5 минут или меньше, как указано выше, то вы можете сделать вызов ajax на отдельный сервлет, который будет обновлять последнее запрошенное время в базе данных. Если вы обновляете последнее полученное время запроса в базе данных, вам даже не нужно проверять предыдущий запрос и текущий запрос.

For example, если вы идете по второму варианту, и я открываю страницу в 12:05 и сохраняю ее до 12:19, затем закройте мой браузер, а затем в вашей базе данных мое последнее время запроса будет 12:15, если вы звоните на ваш сервер от клиента каждые 5 минут. он может решить вашу проблему.

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

Смежные вопросы