2011-02-03 2 views
0

Можно создать дубликат:
javascript detect browser close tab/close browserКак огонь событие в браузере закрытия

Привет, ребята,

У меня есть проблема, чтобы определить конец сеанса, когда браузер закрыт, как я могу получить это, я хочу запустить запрос для хранения информации о времени входа в базу данных, пожалуйста, помогите мне. Все

+0

Не можете использовать 'Session_End'? –

ответ

1

Вы можете создать скрытую кнопку, а затем огонь события нажатия кнопки с помощью

function doUnload() 
{ 
if (window.event.clientX < 0 && window.event.clientY < 0) 
{ 
    document.getElementByID('HiddenButton').click() } 
} 
<body onunload="doUnload()"> 

Никогда не пробовал, но это может работать :)

или вы могли бы использовать методы global.aspx

protected void Session_End(object sender, EventArgs e) 
    { 

что-то делать; }

protected void Application_End(object sender, EventArgs e) 
    { 

что-то делать; }

Sp

+0

-1 Application_End не имеет прямого отношения к активности клиента, а Session_End не является надежным, поскольку он запускается после того, как количество сеансов сессии неактивно. – onof

+0

Я полагаю, это зависит от того, насколько они точны. это будет. просто подумал, что он выбросит его там. :) – Steven

3

Это очень ненадежно полагаться на то, что запрос ajax не может быть завершен при закрытии браузера.

Решение:

отправки запроса Heartbeat каждые x секунд для того, чтобы сказать, если пользователь оставил или нет.

+1

Самое последнее, что нам нужно в Интернете - это сайты, злоупотребляющие AJAX для запросов «heartbeat». – meagar

+1

@meagar Я согласен, я не знаю, почему апеллятор точно хочет, чтобы пользователь закрывал браузер, а не традиционный способ. Я думал, что он строит аналитический сервис в режиме реального времени. – Ryan

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