我有一个网页,每隔5秒左右通过从服务器获取数据在AJAX中进行自我更新。但是,我希望只在用户正在查看页面时才执行更新。检查用户是否正在主动查看网页
当用户在另一个选项卡上,在浏览器以外的其他程序中,或任何其他时间该页面不是用户PC上的主活动页面时,不应该进行更新。
什么是最准确的,跨浏览器的方式来测试呢?
我有一个网页,每隔5秒左右通过从服务器获取数据在AJAX中进行自我更新。但是,我希望只在用户正在查看页面时才执行更新。检查用户是否正在主动查看网页
当用户在另一个选项卡上,在浏览器以外的其他程序中,或任何其他时间该页面不是用户PC上的主活动页面时,不应该进行更新。
什么是最准确的,跨浏览器的方式来测试呢?
jQuery idleTimer插件应该按照你的需要来做。
文档是在这里: http://paulirish.com/2009/jquery-idletimer-plugin/
演示是在这里: http://ajaxdump.com/?8ADKBT6O
如果你喜欢纯JS的方式,这里有一个解决方案:
(function(){
var itl=null;
window.onfocus=function(){itl=window.setInterval(/*heartbeat function*/,5000);};
window.onblur=function(){if(itl){window.clearInterval(itl);}};//stop heartbeat
})();
不帧的工作,虽然,您必须在独立选项卡上进行测试。
你俩的答案的工作吗? –