gpt4 book ai didi

javascript - requestAnimationFrame 并知道浏览器何时重新绘制?

转载 作者:行者123 更新时间:2023-11-28 11:17:03 25 4
gpt4 key购买 nike

有没有办法知道浏览器何时主动运行requestAnimationFrame

例如,当我从正在运行 requestAnimationFrame 的选项卡切换选项卡时,该函数将停止执行,当我切换回来时,它会继续执行,处理此问题的最佳方法是什么?

最佳答案

要检测 requestAnimationFrame 是否运行 100%,您可以检查:

window.addEventListener('blur', function() {
//not running full
}, false);

window.addEventListener('focus', function() {
//running optimal (if used)
}, false);

正如我们所知,当窗口(选项卡)不是事件窗口(IF 正在使用 - 这取决于实际使用 requestAnimationFrame 的代码)。

如果您希望它不断运行,您可以插入如下机制:

var isActiveTab = true; //update with the events above

function myLoop() {

//my cool stuff here

if (isActiveTab) {
requestAnimationFrame(myLoop);
} else {
setTimeout(myLoop, 16); //force a rate (vblank sync not necessary
//when display isn't updated
}
}

请注意,requestAnimationFrame 速率的降低不是标准的一部分,而是浏览器特定的实现。

关于javascript - requestAnimationFrame 并知道浏览器何时重新绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com