出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
[3059] Re:ASPのSessionについて |
投稿者:暇人さん 2002/12/20 15:23:25 |
あんまりやってはいけないことなのだと思いますが 該当するページから引っ張ってきました 現在このページは使われておらず、キャッシュから拝借いたしました これで旨く行けば幸いです。はずしていたらごめんなさい 以下抜粋 Session管理の問題(1998/2/24) セッションの管理にバグがあり、Session変数をダミーで定義する必要が あるようです。 具体的には、global.asaのSession_OnStartにおいて、Session変数を定義 せず、Application変数のみ指定した場合、ブラウザのリロードのたびに セッションが新規に作成されてしまいます。 たとえば、カウンタを実現するとして、Global.asaに <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Application_OnStart Application("Counter") = 0 End Sub </SCRIPT> <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart Application.Lock Application("Counter") = Application("Counter") + 1 Application.Unlock End Sub </SCRIPT> と定義していた場合、各ページにうめこんだカウンタ <%=Application("Counter")%> は、リロードしたり、リンクをたどるたびにインクリメントされてしまいます。 対策は、Session_OnStartにてSession変数を一つ以上定義することです。 わたしは、Session_OnStartの最初に、 Sub Session_OnStart Session("StartTime") = Now Application.Lock Application("Counter") = Application("Counter") + 1 Application.Unlock End Sub とセッションの開始時刻をSession変数に保存することにより、回避しました。 Sessionの概念はASPに固有な概念だけに、この問題には注意が必要です。 |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
TreeBBS For ASP V.0.1.3 |