« 外出先から自宅のパソコンを覗く | メイン | 一般ユーザーでオーディオデバイス使用(録音・再生) »

Tips

セッションタイムアウト

 フォームの送信ボタンを押したらセッションタイムアウトで入力したデータが無駄になるというお粗末なWEBアプリをなんとかして欲しいという依頼。サーバー側に手を入れる予算が出ないため、javaスクリプトで応急処置。
 クライアントの時刻は信用できないので、入力フォームがロードされたクライアント時刻からの相対時間で判定。
 本当は、ユーザー認証を要求して処理を継続させてあげるのが正解。

<html>
<head>


<script language="JavaScript">
<!--
var secPeriod=0;    ///    active time of session [second]
var msLimit=0;        ///    at time out o'clock [millsecond]

function setCheckTimeOut( sessionMaxInactiveInterval ){
    secPeriod = sessionMaxInactiveInterval;
    dateNow = new Date();
    msLimit = dateNow.getTime() + secPeriod * 1000;
}

function isSafeTime(){
    dateNow=new Date();
    nokori = msLimit - dateNow.getTime();
    if( 0 > nokori ){
        alert( "timed out [" + secPeriod + " second]" );
        return false;
    }
    return true;
}

//setCheckTimeOut( <%=session.getMaxInactiveInterval()%> );
setCheckTimeOut( 3 );
//-->
</script>


</head>
<body>
    <form action="" method="post" onsubmit="return isSafeTime()">
    <textarea name="message"></textarea>
    <input type="submit">
    </form>
</body>
</html>

トラックバック

このエントリーのトラックバックURL:
http://www.remix.asia/cgi/mt/mt-tb.cgi/5766

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)