2012-04-16 3 views
0

Я хочу выполнить действие в случае сбоя браузера в asp.net. Я хочу уничтожить элемент, добавленный в корзину, и вернуться в исходное состояние приложения и базы данных, если браузер сработает.Событие сбой браузера в asp.net

Как это сделать?

+0

Сервер не может знать, произошел ли сбой браузера, или пользователь закрыл браузер или отключилось питание. – ZippyV

+1

Я не думаю, что это возможно, но я хотел бы услышать, можно ли выполнить такую ​​задачу. – adt

+0

Лучшая ставка может заключаться в присоединении к событию, завершившему сеанс пользователя. – McGarnagle

ответ

0

К сожалению, невозможно, из-за нескольких факторов.

1) сеть является апатридом, то есть веб-сервер не имеет представления о веб-браузере, кроме того, что он что-то просил. После того, как он обслуживает запрос, он не имеет возможности общаться с браузером.

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

3) если браузер падает, он разбился, поэтому он не может отправлять какую-либо информацию в любом месте из-за того, что он больше не работает.

Вы можете подключиться к событию session_end, которое будет срабатывать при завершении сеанса пользователя (сеанс заканчивается, если пользователь не просил ничего в течение определенного периода времени, по умолчанию это 20 минут), однако нет способа сказать, ПОЧЕМУ сессия закончилась. браузер пользователей, возможно, разбился, возможно, они закрыли свой браузер, или им, возможно, стало скучно и ушел на другой сайт.

Обычно я не обновлял состояние приложения до тех пор, пока пользователь не проверит, поэтому корзина будет единственной, которую мне нужно будет удалить. Для этого я установил столбец datetime в моей таблице корзины и обновляю его каждый раз, когда корзина обновляется. Затем я запускаю запланированную задачу в базе данных каждый день, которая удаляет все корзины, которые старше, чем количество времени, в которое я держу корзины.

+0

Да, правильно .. Спасибо за помощь Тим .. :) – writeToBhuwan

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