我正在使用PHP和jquery创建一个用户计数脚本,我想知道用户是否处于非活动状态。
$.mousemove(function(){
//get php to update time on user
});
但是我应该如何设置它以便每次移动时都不会更新但每1秒更新一次?喜欢这个?
$.mousemove(function(){
//get php to update time on user
$.delay(1000);
});
然后我还会添加一个具有相同功能的按键功能,这样我也可以判断键盘是否处于活动状态。
答案 0 :(得分:1)
希望这是自我解释的,希望它有效!当用户移动鼠标时,这会立即通知服务器 ,假设服务器在一秒钟内没有得到通知,并定期通知。
我们计划activityNotification()
每秒运行一次(使用类似jQuery timer或setInterval(func, time)
function的内容),以便尽可能响应地处理以下时间轴:
代码:
//Track the last activity you saw
var lastActivity = 0;
//Remember the last time you told the server about it
var lastNotified = 0;
//Determines how frequently we notify the server of activity (in milliseconds)
var INTERVAL = 1000;
function rememberActivity() {
lastActivity = new Date().getTime();
activityNotification();
}
function activityNotification() {
if(lastActivity > lastNotified + INTERVAL) {
//Notify the server
/* ... $.ajax(); ... */
//Remember when we last notified the server
lastNotified = new Date().getTime();
}
}
setInterval('activityNotification()', INTERVAL);
$.mousemove(function() {
//Remember when we last saw mouse movement
rememberActivity();
});
$.keyup(function() {
//Remember when we last saw keyboard activity
rememberActivity();
});
请记住,并非所有用户都启用了JavaScript,这将导致移动设备严重耗尽电量。