プロが教えるわが家の防犯対策術!

ASPを使ったログイン機能を持ったページを作っています。
ログインしたときにセッションIDを使って直リンクを避けるような
機能を持たせたのですが、サーバーの負荷を避けるために、ログアウト
ボタンを作って ログアウトボタンを押したらセッション情報を破棄
するようにしたら、どうもページを読み込んだときに
すぐに破棄してしているようで うまくできません

ソースは
<%@ Language = "VBScript" %>
以下HTMLヘッダー類
<script language="JavaScript">
<!--
function owari(){
<% Session.Abandon %>//セッション破棄
parent.location.replace('../login/login.asp?stn=2');//ページ移動
}
//-->
</script>
以下HTMLのボディー
<INPUT type="button" value="ログアウト" onclick="owari()">
以下色々なソース

ボタンを押したら JavaScriptを呼び出し
破棄してページ移動するように作ったのですが
これ自体は問題なく作動するのですが、
<% Session.Abandon %>//セッション破棄
がはいると、なぜかページを開いたときに 呼び出してもいないのに
破棄されてしまっているようで、通常のページ移動もできなくなります
セッション破棄の1行を抜くと 全てきちんと作動しますが
これではサーバーのセッションタイムアウトまでメモリが残るから良くないのです。

また、VBScript内に
Sub haki()
Session.Abandon
..
..
End sub
として
<script language="JavaScript">
<!--
function owari(){
<% haki %>
}
//-->
</script>

と言うようにしても、同じ不具合になります
JavaScriptはfunctionにすると呼び出されるまでは実行されないと思います。
またVBScriptのSubプロシージャも呼ばれるまでは実行しないと思っています。

ただ、今の状態を見る限り、このあたりの認識が間違っているのかなと思っているのですが、
根本的な原因とその解決策が分からず困っています。

どなたかご教授くださいますと幸いです。
よろしくお願いします

A 回答 (1件)

根本的な問題は、サーバーサイドとクライアントサイドの違いを認識していないところにあります。



Webサーバ上で動くサーバサイドスクリプトと
ブラウザ上で動くクライアントサイドスクリプトを同時に実行するのは不可能です。
    • good
    • 0

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