我正在开发一个“实时”Web应用程序,每10秒向服务器发送一次AJAX请求。显然,这非常消耗带宽,我想知道是否有任何解决方案。
我的想法是检查用户是否在X秒内没有移动鼠标。我该如何实现这个功能?
我的想法是检查用户是否在X秒内没有移动鼠标。我该如何实现这个功能?
您可能希望监听以下事件:
鼠标移动,鼠标点击,鼠标弹起,鼠标按下,键盘按下,键盘弹起,键盘按键
设置一个定时器,在一段时间(60秒?)的闲置后触发并关闭开关。确保在ajax请求前检查您的开关。
最好是,用户保持闲置状态越长,您的ajax调用速率就指数级地降低到某个较低的值。
$(window).bind('mousemove click mouseup mousedown keydown keypress keyup submit change mouseenter scroll resize dblclick', someEvent);
var active = true,
delay = 60000,
timer = null;
function someEvent(e)
{
active = true;
if (timer) clearTimeout(timer);
timer = setTimeout(function(t){
active = false;
}, delay);
}