2012-04-16 6 views
0

asp.netのブラウザクラッシュのイベントでアクションを実行したいと思います。私はカートに追加されたアイテムを破壊し、ブラウザがクラッシュした場合にアプリケーションとデータベースの元の状態に戻したいと思います。asp.netのブラウザクラッシュのイベント

どうすればいいですか?

+0

サーバーは、ブラウザがクラッシュしたか、ユーザーがブラウザを閉じたか、電源が切れたかどうかを知ることができません。 – ZippyV

+1

私はそれが可能だとは思わないが、そのような仕事が達成できるかどうか聞いてみたい。 – adt

+0

ユーザーセッションの終了イベントにアタッチするのが最善の策かもしれません。 – McGarnagle

答えて

0

いくつかの要因によって悲しいことに、不可能です。

1)ネットはステートレスです。つまり、Webサーバーは何かを要求したこと以外はWebブラウザについて全く知らないのです。要求が処理された後、ブラウザと通信する方法はありません。

2)ブラウザにも同じ問題があります。サーバーにコンテンツを求めて取得したら、それだけです。ユーザーがブラウザを閉じたり、セッションがタイムアウトしたりすると、ブラウザがクラッシュすると、サーバーはそのことを知らず、ブラウザはそれを知らせません。

3)ブラウザがクラッシュした場合、クラッシュしてしまい、それ以上の情報がないため、どこにも情報を送信できません。

ユーザーのセッションが終了したときに起動するsession_endイベントにフックすることができます(セッションは、ユーザーが一定時間何も要求しなかったときに終了します。デフォルトは20分です)。セッションが終了した理由を伝える方法はありません。ユーザーのブラウザがクラッシュしたり、ブラウザを閉じたり、退屈して別のサイトに行ったりする可能性があります。

通常、ユーザーがチェックアウトするまでアプリケーションの状態を更新しないので、削除する必要があるのはバスケットだけです。これを行うために、カートテーブルにdatetime列を設定し、カートが更新されるたびに更新します。私は毎日、バスケットを保持する時間より古いすべてのバスケットを削除する、データベース上でスケジュールされたタスクを実行します。

+0

ええ、右..ヘルプティム..ありがとう:) – writeToBhuwan

関連する問題