- ベストアンサー
Webウィンドウの×イベントを拾う方法を教えてください。
Webウィンドウの×ボタンがクリックされたとき、ASPプログラム内でセッションを開放したいのですが、×ボタンがクリックされた。というイベントをASP側でどうやって拾うのでしょうか?教えてください。 拾えないとすれば、×ボタンをクリックした時点でどうやってセッションを開放するのですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
プロトコルから考えると、HTTPはステートレスの通信なのでクライアントとサーバーの接続は一回ごとに独立しています。 クライアント(ブラウザ)がWWWサーバーにページ(ASP)を要求 ↓ WWWサーバーが処理を行い結果(HTML)を返却 これで終わりです。 という事で、WWWサーバー側ではブラウザに対してレスポンスを返却したあとは、そのブラウザが閉じられたことを知るすべはありません。 ただ、ブラウザがWWWサーバーに通信を要求し、処理を返す前に閉じられてしまった場合のみは、Response.IsClientConnectedプロパティで参照できます。 そうでなく、例えば、ブラウザのページを見ているユーザーが、次のページを要求することなくブラウザを終了したことを知る必要があれば、JavaアプレットやクライアントサイドのActiveX、あるいはFlashなどを使って通信を監視する必要があります。 なので、セッションを開放するのはセッションがタイムアウトするのを待つよりありません。ちなみに、Session_OnEndイベントが発生するのはセッションがタイムアウトして破棄された場合だったと思います。
その他の回答 (2)
- LemonT
- ベストアンサー率49% (39/79)
こんばんは。 No.2の方の補足です。 >Session_OnEndイベントが発生するのはセッションがタイムアウトして破棄された場合だったと思います。 Session_OnEndイベントは、セッションがタイムアウトして破棄された場合と、Session.Abandonを発行した時に発生します。(正確にはSession.Abandon発行後、クライアントにデータが送り終わってから。)
お礼
了解しました。ありがとうございます。
- mann555
- ベストアンサー率46% (29/62)
各ページに下記を入れて if Response.IsClientConnected = false then Response.End end if global.asa にて Sub Session_OnEnd Session.Abandon end sub とか
お礼
ありがとうございました。勉強になりました。
お礼
詳しいご説明まことにありがとうございました。