如何解决jQuery进入空闲和活动状态的问题:当活动状态更新mysql上的useronline时间戳时
|| 我只想在人们不闲时更新useronline数据库上的时间戳(键盘鼠标处于活动状态一段时间-我正在使用jquery插件),对我来说,问题是我无法清除因此,在下面的测试脚本中,它开始计数就永远不会停止,即使再次激活它也会启动另一个计数器,从而使其计数速度快两倍。我应该如何停止计时器?就像计数器在闲置时从未启动过一样,因此找不到它来停止它。 在真实的脚本中,计数器将是$ .get()-更新MysqL表的PHP。因此,我正在使用间隔,否则每次鼠标移动都会使间隔右移?这将加载服务器。 http://jsbin.com/uleza5进行测试,只是不要移动鼠标6秒钟,然后看到空闲文本,然后移动鼠标,它将开始计数; 6秒钟后,闲置时它将再次闲置。<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\"></script><script src=\"js/jquery_plugin_timer2.js\"></script>
<script src=\"https://github.com/paulirish/jquery-idletimer/raw/master/jquery.idle-timer.js\"></script>
<Meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>timertest</title>
<script language=\"javascript\">
$(document).ready(function(){
$(\'.status\').html(\'active\');
});
x = 0;
function count() {
x+=1;
$(\'.usercount\').html(x);
}
(function() {
var timeout = 6000;
var it;
$(document).bind(\"idle.idleTimer\",function() {
clearInterval(it);
$(\'.status\').html(\'idle\');
});
$(document).bind(\"active.idleTimer\",function() {
var it = setInterval(count,1000);
$(\'.status\').html(\'active\');
});
$.idleTimer(timeout);
})(jQuery);
</script>
</head>
<body>
<div class=\"status\" style=\"border:1px dashed black; width:500px; height:50px;\"></div>
<div class=\"usercount\"style=\"border:1px dashed black; width:500px; height:50px;\"></div>
</body>
</html>
解决方法
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\"></script><script src=\"js/jquery_plugin_timer2.js\"></script>
<script src=\"https://github.com/paulirish/jquery-idletimer/raw/master/jquery.idle-timer.js\"></script>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
<title>timertest</title>
<script language=\"javascript\">
var it;
$(document).ready(function(){
$(\'.status\').html(\'active\');
});
x = 0;
function count() {
x+=1;
$(\'.usercount\').html(x);
}
(function() {
var timeout = 6000;
$(document).bind(\"idle.idleTimer\",function() {
clearInterval(it);
$(\'.status\').html(\'idle\');
});
$(document).bind(\"active.idleTimer\",function() {
it = setInterval(count,1000);
$(\'.status\').html(\'active\');
});
$.idleTimer(timeout);
})(jQuery);
</script>
</head>
<body>
<div class=\"status\" style=\"border:1px dashed black; width:500px; height:50px;\"></div>
<div class=\"usercount\"style=\"border:1px dashed black; width:500px; height:50px;\"></div>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。