我正在探索一个潜在的内部内容传送系统,我们必须跟踪学生的任务时间。只要学生与页面进行交互,就没有问题。如果学生外出吃午饭而页面打开,会话应该超时,他们将不会在超时后的在线时间获得奖励。
我已经知道我可以轻松捕获诸如导航离开页面并使用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
}
};
答案 0 :(得分:0)
使用JavaScript检测用户何时空闲。当用户空闲时,会触发一个AJAX呼叫,该呼叫会消除任何cookie或会话数据。
答案 1 :(得分:0)
如果您让浏览器执行此操作,学生可以轻松伪造它。相反,只要用户执行某项操作(比如转到其他页面),我就会将其转换为日志。时间花费是动作与下一个动作之间的时间总和(增量时间),但如果增量时间大于15分钟则排除。