javascript检测用户正在查看页面

javascript检测用户正在查看页面,javascript,Javascript,目前,我的网站通过setInterval(“checklatestmsgidLive();”,10000)每隔10秒自动重新加载一个javascript函数我认为即使用户在“其他”选项卡上查看其他网站,该功能仍将继续重新加载该功能。如何使其仅在用户查看我的网站时重新加载功能?javascript能否检测用户是否正在查看我的网站 我看到facebook.com wall也只在我查看页面时更新新帖子,当我在其他选项卡上时,它不会更新新帖子。如何做到这一点?一个简单的解决方案是检测页面中的鼠标移动。在

目前,我的网站通过
setInterval(“checklatestmsgidLive();”,10000)每隔10秒自动重新加载一个javascript函数我认为即使用户在“其他”选项卡上查看其他网站,该功能仍将继续重新加载该功能。如何使其仅在用户查看我的网站时重新加载功能?javascript能否检测用户是否正在查看我的网站


我看到facebook.com wall也只在我查看页面时更新新帖子,当我在其他选项卡上时,它不会更新新帖子。如何做到这一点?

一个简单的解决方案是检测页面中的鼠标移动。

在没有鼠标的触摸设备上,鼠标移动不太好,但我们还没有很多选项。W3C正在开发一个新的API:。它还处于非常早期的阶段,我能找到的唯一已经开始实现它的浏览器是Google Chrome(开发频道)和Internet Explorer 10平台预览版

var tId, idleTimer;
function initReload() { 
  clearInterval(tId);
  tId = setInterval(checklatestmsgidLive, 10000 );

}
window.onload=window.onfocus=function() {
  initReload()
}
window.onblur=function() {
  clearInterval(tId);
}
window.onmousemove=function() {
  clearTimeout(idleTimer);
  idleTimer = setTimeout(function() { clearInterval(tId);},600000); // idle for 10 minutes
}
由于规范仍然是草稿,因此属性和事件都以供应商为前缀。但它仍然有效,而且Chrome的更新速度非常快。因此,我将尝试检测页面可见性是否可用,如果不可用,则返回鼠标移动攻击


IE团队有一个可以在Chrome开发和IE 10平台预览中使用的应用程序。

可能与arrrr重复。。对不起。我感到内疚。不要感到内疚,这可能发生在任何人身上。让我印象深刻的是,没有其他人关心这个问题,有些人通过再次回答这个问题而获得了一些声誉。我爱你,所以有时候。。。有时候不是。我想这也是gmail如何在你的gmail标签暂时没有激活的情况下,将你的聊天状态从“离开”切换到“在线/忙碌”。谢谢。说真的,我讨厌facebook这种方式。当我试图点击某个东西时,它是如此的烦人,“某个东西”会移开。我不想用鼠标检测的方式。我打算用window.onblur。我可以知道Facebook为什么不使用window.onblur吗?它应该比鼠标检测更好…:)@zac1987可以理解。。。我个人认为这是一个整洁的效果。如果我没有弄错的话,如果用户可能使页面处于焦点但处于空闲状态,则不会发生window.onblur事件。但我不确定,我明白了。哇,我从没想过。FB很聪明:)如果我只在标签之间切换,而不在页面上带鼠标,那会怎么样?这不是正确的答案。这在移动设备中也会有问题。我明白了。所以我只需要window.onblur。非常感谢你。我可以知道你为什么把clearInterval(tId);在函数initReload()中,我想如果不放置它,效果仍然相同(setInterval将从第0秒开始)。我放置它是为了防止重新加载onfocus。它只是防御性的,但并不是真正需要的。@Zac我按照ChrisI的建议添加了一个mousemove。我已经成功地将您的代码实现到我的网站中了。非常感谢你。如果有人对IE上的window.onblur有问题,这里有一个解决方案:)看起来不错。我看到代码大部分来自重复问题。我仍然想知道他们使用的奇怪的IE黑客