0

私は、学生のタスク時間を追跡しなければならない、潜在的な社内コンテンツ配信システムを模索しています。学生がページを操作している限り、問題はありません。学生がページを開いたまま昼食に出かける場合、セッションはタイムアウトするはずであり、タイムアウト後のオンライン時間のクレジットは取得されません。

ページから移動したり、PHPを使用してその事実をMySQLの学生の記録に記録したりするなどのイベントを簡単にキャプチャできることはすでにわかっていますが、学生をタイムアウトにする最良の方法は何ですか?JavaScript?私は周りを見回しましたが、まだ良い説明が見つかりませんでした。

助けてくれてありがとう!

- - - - - 編集 - - - - - - -

怠惰についての特定の投稿を見ることについてのFlorisの提案の後、ほとんどがJQueryソリューションを提案しましたが、1つのポスターにはJQueryのない単純なソリューションがありました。このコードは機能するように見えますか?それは私にはうまく見えます:

var inactivityTime = function () {
    var t;
    window.onload = resetTimer;
    document.onmousemove = resetTimer;
    document.onkeypress = resetTimer;

    function logout() {
        alert("You are now logged out.")
        //location.href = 'logout.php'
    }

    function resetTimer() {
        clearTimeout(t);
        t = setTimeout(logout, 3000)
        // 1000 milisec = 1 sec
    }
};
4

2 に答える 2

0

JavaScriptを使用して、ユーザーがアイドル状態になったときを検出します。ユーザーがアイドル状態になると、Cookieまたはセッションデータを吹き飛ばすAJAX呼び出しを起動します。

于 2013-01-26T05:12:47.513 に答える
0

ブラウザに作業を任せれば、学生は簡単にそれを偽造することができます。代わりに、ユーザーがアクションを実行するたびに(別のページに移動するなど)、それを元に戻してログに記録します。費やした時間は、アクションと次のアクションの間の時間の合計(デルタ時間)ですが、デルタ時間が15分より大きい場合は除外します。

于 2013-01-26T05:17:41.433 に答える