Почему событие session_end не вызывается при закрытии браузера?ASP.NET Почему событие session_end не вызывается при закрытии браузера?
1
A
ответ
7
Поскольку сеанс не заканчивается при закрытии браузера. Сеанс завершается, когда он отключен, или он явно завершен на стороне сервера.
Закрытие браузера действительно не имеет ничего общего с подключением к серверу. Соединение уже завершено, как только страница полностью загружена (за исключением некоторых фанк-аякс).
0
Silky имеет право, но вы можете попробовать использовать метод ajax oneway, привязанный к событию onbeforeunload, и на сервере вы можете обработать это событие. Но он, вероятно, не очень надежный и работает не во всех браузерах.
<body onbeforeunload="ClosingWindowAjaxEventHandler();">
Но когда вы закрываете браузер и при закрытии, если он очищает файлы cookie, сеанс автоматически закрывается. – rahul
Файлы cookie используются для сопоставления запроса от браузера с сохраненным состоянием сеанса на сервере, поэтому удаление cookie только означает, что будущие запросы не будут скоррелированы. Это все еще не означает, что сохраненное состояние сеанса на сервере очищается (до истечения сеанса). – jwanagel