dポイントプレゼントキャンペーン実施中!

Webウィンドウの×ボタンがクリックされたとき、ASPプログラム内でセッションを開放したいのですが、×ボタンがクリックされた。というイベントをASP側でどうやって拾うのでしょうか?教えてください。
拾えないとすれば、×ボタンをクリックした時点でどうやってセッションを開放するのですか?

A 回答 (3件)

プロトコルから考えると、HTTPはステートレスの通信なのでクライアントとサーバーの接続は一回ごとに独立しています。



クライアント(ブラウザ)がWWWサーバーにページ(ASP)を要求

WWWサーバーが処理を行い結果(HTML)を返却

これで終わりです。

という事で、WWWサーバー側ではブラウザに対してレスポンスを返却したあとは、そのブラウザが閉じられたことを知るすべはありません。

ただ、ブラウザがWWWサーバーに通信を要求し、処理を返す前に閉じられてしまった場合のみは、Response.IsClientConnectedプロパティで参照できます。

そうでなく、例えば、ブラウザのページを見ているユーザーが、次のページを要求することなくブラウザを終了したことを知る必要があれば、JavaアプレットやクライアントサイドのActiveX、あるいはFlashなどを使って通信を監視する必要があります。


なので、セッションを開放するのはセッションがタイムアウトするのを待つよりありません。ちなみに、Session_OnEndイベントが発生するのはセッションがタイムアウトして破棄された場合だったと思います。
    • good
    • 0
この回答へのお礼

詳しいご説明まことにありがとうございました。

お礼日時:2002/10/30 19:25

こんばんは。



No.2の方の補足です。
>Session_OnEndイベントが発生するのはセッションがタイムアウトして破棄された場合だったと思います。
Session_OnEndイベントは、セッションがタイムアウトして破棄された場合と、Session.Abandonを発行した時に発生します。(正確にはSession.Abandon発行後、クライアントにデータが送り終わってから。)
    • good
    • 0
この回答へのお礼

了解しました。ありがとうございます。

お礼日時:2002/10/30 19:26

各ページに下記を入れて



if Response.IsClientConnected = false then
Response.End
end if


global.asa にて

Sub Session_OnEnd
Session.Abandon
end sub

とか
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2002/10/30 19:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!