requestAnimationFrame - 告诉浏览器何时失去焦点

时间:2014-11-21 00:33:10

标签: javascript requestanimationframe

从我读过的requestAnimationFrame可以判断浏览器何时失去焦点。发生这种情况时会发生某种事件吗?我正在寻找暂停和恢复与requestAnimationFrame相关的代码。

1 个答案:

答案 0 :(得分:0)

requestAnimationFrame不是浏览器失去焦点时可以触发事件的元素;它只是建立一个回调。但标准行为是当浏览器/选项卡失焦时,回调会暂停。因此,很可能您的代码(如果在回调中)已经暂停。

有可能所有浏览器都不会暂停回调,而是放慢速度。但是,W3C spec似乎意味着暂停,而不是放慢速度:

  

每当Document的隐藏属性([Page Visibility])为false且动画帧请求回调列表不为空时,用户代理必须定期排队任务......

     

如果d的隐藏属性为true,请继续执行上下文列表中的下一个条目。

如果您希望绝对确定当选项卡失焦时您的代码暂停,或者您尝试暂停的代码不是作为RAF回调的一部分构建的,那么您可以考虑使用 Page Visibility API

请注意,RAF和Page Visibility API仅在IE> = 10。

中可用