2010-11-10 2 views
1

Я хочу выполнить некоторую очистку в своем веб-приложении ASP.NET, когда пользователь закрывает окно IE или страницу с закладкой, на которой открывается страница.Как подключиться к событию закрытия IE

Я смотрел на событие разгрузки элемента body, однако событие выгрузки также запускается, когда вы нажимаете кнопку «Обновить» в IE или изменяете URL-адрес, введя адресную строку.

Любые идеи о том, какое событие поймать, чтобы поймать окно IE (6.0 и 7.0) и закрыть Tab?

ответ

1

использовать сеансы InProc, а также событие Session_End в global.ascx для очистки. javascript слишком ненадежен для этого.

+0

Сессии недоступны в распределенном кеше. – Metallikanz

+0

справа. я бы использовал какой-то поток монитора на стороне сервера, который проверяет временную метку последнего запроса на сеанс каждые X минут и выполняет вашу работу в нем. вы даже можете добавить обратную передачу фона AJAX на свою страницу, если вы действительно хотите проверить, открыт ли браузер, но опять же, его не 100% – jasper

0

Javascript будет ненадежным/полностью ограничивающим это по соображениям безопасности. Это действительно зависит от того, что вы пытаетесь сделать, если вы пытаетесь запустить код на компьютере-клиенте, тогда это будет сложно/невозможно (что хорошо, я не хочу, чтобы сайты, на которые я не доверяю возиться с моим браузером по одной из его основных функций, закрывая окно).

Если вы хотите запустить некоторые скрипты на стороне сервера, чтобы пометить пользователя как ушедшего, снова, трудно/невозможно, поскольку Jasper упомянул, что global.ascx пойдет вам на помощь, но в противном случае вам понадобятся таймеры и события, запущенные на «истекших» пользователях.