0

我正在探索一个潜在的内部内容交付系统,我们必须在其中跟踪学生的任务时间。只要学生与页面交互,就没有问题。如果学生出去吃午饭,页面打开,会话应该超时,超时后他们将不会获得在线时间的积分。

我已经知道我可以轻松地捕获事件,例如离开页面并使用 PHP 将该事实记录到 MySQL 中的学生记录中,但是让学生超时的最佳方法是什么?JavaScript?我环顾四周,还没有找到好的解释。

谢谢你的帮助!

- - - - - 编辑 - - - - - - -

在 Floris 建议查看有关闲置的特定帖子后,大多数人建议使用 JQuery 解决方案,但一位发帖者有一个没有 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 检测用户何时空闲。当用户空闲时,会触发一个 AJAX 调用,该调用会清除所有 cookie 或会话数据。

于 2013-01-26T05:12:47.513 回答
0

如果您让浏览器完成这项工作,学生可以轻松伪造它。相反,每当用户执行操作(例如转到其他页面)时,我都会将其转过来并记录。花费的时间是一个动作和下一个动作之间的时间总和(增量时间),但如果增量时间大于 15 分钟,则不包括在内。

于 2013-01-26T05:17:41.433 回答