https://imgur.com/gallery/LKrGC
这是我为演示拍摄的动画GIF。 只使用320行代码,结构简单。
问题是,当我在Firefox中打开它时,它会严重干扰。 在chrome中,它工作得很好。 我想知道为什么会这样。
起初我认为它与我的代码有关。 因为每个函数内部都有很多局部变量。 所以我删除了它们,现在它在Chrome中运行良好。 但它仍然发生在Firefox中。 我不知道如何解释devTools的性能概况。
Obj Input // contains vars, funcs,
Obj Game // contains vars, funcs,
Obj Graphic // contains vars, funcs,
var RAF = requestAnimationFrame;
func main(){
//lastTime, now, delta for calculating x, y values
...
Input.update(delta);
Game.process(delta);
Graphic.draw();
...
RAF(main);
}
main();
这是我的代码的简化版本。
我已经搜索过如何使用RAF控制FPS,如何使用devTools但是,我对这种行为一无所知。任何人都可以启发我吗?
https://imgur.com/a/IyIIT firefox / chrome个人资料图片。
更新:
我在firefox,firefox devEdition,chrome上测试过它。只有扩展显示器中的firefox才会导致此问题。我甚至减小了画布的大小,并确认这与浏览器的性能和代码优化无关。
我的猜测是,当firefox浏览器从另一个监视器移动到一个监视器时,它会尝试重新调整处理它的方式-rAF,重新绘制等等。而这样做,firefox无法正常处理它扩展监视器。
这确实非常有趣,我想深入研究。但很明显,我可以得出结论。