2012-10-23 31 views
2

我有一个网页,每隔5秒左右通过从服务器获取数据在AJAX中进行自我更新。但是,我希望只在用户正在查看页面时才执行更新。检查用户是否正在主动查看网页

当用户在另一个选项卡上,在浏览器以外的其他程序中,或任何其他时间该页面不是用户PC上的主活动页面时,不应该进行更新。

什么是最准确的,跨浏览器的方式来测试呢?

+0

你俩的答案的工作吗? –

回答

1

如果你喜欢纯JS的方式,这里有一个解决方案:

(function(){ 
var itl=null; 
window.onfocus=function(){itl=window.setInterval(/*heartbeat function*/,5000);}; 
window.onblur=function(){if(itl){window.clearInterval(itl);}};//stop heartbeat 
})(); 

不帧的工作,虽然,您必须在独立选项卡上进行测试。

相关问题