Abandon メソッドは、Session オブジェクトに格納されているすべてのオブジェクトを破棄し、リソースを解放します。Abandon メソッドを明示的に呼び出さない場合、サーバーは、セッションがタイムアウトになった時点でそれらのオブジェクトを破棄します。
Session.Abandon
Abandon メソッドを呼び出すと、現在の Session オブジェクトが削除のためにキューに退避されますが、実際に削除されるのは現在のページのスクリプト コマンドの処理がすべて完了した時点です。つまり、Abandon を呼び出したページ内であれば Session オブジェクト内の変数にはまだアクセスすることができますが、その後の Web ページではアクセスできなくなります。
たとえば、次のスクリプトの 3 行目は値 Mary
を出力します。これは、Session オブジェクトはサーバーがスクリプトの処理を完了するまで破棄されないためです。
<%
Session.Abandon
Session("MyName") = "Mary"
Reponse.Write(Session("MyName"))
%>
しかし、後続の Web ページで変数 MyName
にアクセスした場合、変数は空になっています。これは、上のスクリプトのあるページの処理が完了した時点で MyName
と前の Session オブジェクトが破棄されたためです。
セッションを放棄した後に後続の Web ページを開くと、サーバーは新しい Session オブジェクトを作成します。この新しい Session オブジェクトには、変数やオブジェクトを格納することができます。
次の例は、サーバーが現在のページの処理を完了したときにセッション状態が解放されるようにします。
<% Session.Abandon %>
Session オブジェクト