出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

セッションの残りの有効時間を表示したい   meiさん [2005/06/28 14:40:16] [5077]
  Re:セッションの残りの有効時間を表示したい   暇人さん [2005/06/29 9:34:35] [5080]
    Re:セッションの残りの有効時間を表示したい   meiさん [2005/06/29 13:36:58] [5082]
      作ってみました(報告)   meiさん [2005/07/04 11:32:47] [5090]

[5077] セッションの残りの有効時間を表示したい
投稿者:meiさん 2005/06/28 14:40:16
こんにちは。
ASPで教育プログラムを作っています。
ログインしてから、30分以内に解答して採点したいと思い、
セッションの有効時間をSession.Timeoutで指定しました。
これをリアルタイムで残り時間を25分、20分というように表示したいのです。時計のように常に動いていなくてもページを移動するたびに、その時点のセッション残り時間を表示できればいいんですが・・・。Session.Timeoutで取得できるのは常に有効時間(30分)なので、ログインした時間から逆算するしか方法はないのでしょうか?ご存知でしたらお願いします。

[5080] Re:セッションの残りの有効時間を表示したい
投稿者:暇人さん 2005/06/29 9:34:35
セッションタイムアウトの概念を間違えていませんでしょうか?
ページを移動したらまた時間はクリアされて一から数えなおしになりますよ?
セッションタイムアウトは最後にそのセッションが稼動したときから数えて何分とうように設定しますので。
ページが移動すればセッションが稼動したとみなされタイマーがクリアされます。(注意:その別ページというやつが別のWebサーバに管理されているのなら別です。)

 気づいていらっしゃる通りでログインした時間から逆算するしかないと思います。
 ですがmeiさんがやりたいことは、クライアントサイドスクリプトで解決できるように思います。
タイマーかけてログインした時間との差分から残り時間を計算して表示してあげればよいのではないでしょうか。
 1問毎に画面が切り替わる試験であるならば、セッションなりクッキーなりにログイン時間を代入してやれば、画面が切り替わっても大丈夫ですね。

[5082] Re:セッションの残りの有効時間を表示したい
投稿者:meiさん 2005/06/29 13:36:58
> セッションタイムアウトの概念を間違えていませんでしょうか?
> ページを移動したらまた時間はクリアされて一から数えなおしになりますよ?

そうでした!
すっかり間違えていました。
確かに初めは、ユーザーが何もアクションを起こさなければ
セッション有効時間で情報は破棄される、と覚えていたのに
作っているうちにログインしてからの時間・・・
というふうに概念がすりかわっていました〜!
あらぬ間違った方向に行くところでした。
ありがとうございました。
JavaScriptで調べてみたいと思います。
感謝いたします!


[5090] 作ってみました(報告)
投稿者:meiさん 2005/07/04 11:32:47
セッションの有効時間の残りというか、ページを開いてからの
経過時間を表示すればよかったんですね。
一応作ってみました。とりあえず2分間で。
参考までにソースを書いておきます・・・・。
ありがとうございました。

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<TITLE>制限時間</TITLE>
<Script Language="JavaScript">
function TimeSet(){
var NokoriFun,NokoriByou
NokoriFun=span1.innerText
NokoriByou=span2.innerText
if (NokoriByou==0)
{NokoriByou=59;
NokoriFun=NokoriFun-1;
}
else
{NokoriByou=NokoriByou-1}

if (NokoriByou<10){
NokoriByou="0"+NokoriByou
}
span1.innerText=NokoriFun
span2.innerText=NokoriByou


if(NokoriFun==0 & NokoriByou=="00"){
alert("時間切れです!")
window.close()
}
else{
setTimeout("TimeSet()",1000)
}
}

function Kaishi()
{
span1.innerText="2"
span2.innerText="0"
TimeSet()
}
// End -->
</Script>

</HEAD>
<BODY BGCOLOR="#E8E8F0" onload="Kaishi()">
<BR>
<CENTER>
<b><font face="MS Pゴシック">のこり時間</b><span id=span1></span>:<span id=span2></span></font>
</CENTER>
</BODY>
</HTML>




TreeBBS For ASP V.0.1.3
Program By YasNet