今天我一直在尝试了解HTML5提供的任何新功能,特别是画布。我发现了网站www.html5canvastutorials.com并开始跟随一些教程,并在不同的浏览器中玩弄代码。当我到达以下示例时,我注意到在Google Chrome中有些奇怪。http://www.html5canvastutorials.com/advanced/html5-canvas-oscillation-animation/
webkitRequestAnimationFrame函数应该帮助减少FPS(因此降低CPU成本),例如当您转到其他选项卡时,但是当我尝试这个示例时,我注意到这并不总是产生令人愉快的结果。
- Google Chrome作为活动窗口,当前标签上的站点:获得约60 FPS,非常好!
- Google Chrome作为活动窗口,在不同的标签上:获得约1 FPS,非常好。
- Google Chrome作为活动窗口,在我的电视上(用作第二个显示器),120 FPS,有点奇怪,但没有抱怨。
- Google Chrome不是活动窗口,但在另一个标签中,也约为1 FPS,完美。
然后是坏的部分: 如果我的站点在当前标签上,但我有另一个窗口完全覆盖了Google Chrome窗口(例如最大化的窗口),FPS会飙升到约2500(从而使一个CPU核心达到最大值)。
当我在Firefox中尝试相同的站点时,一切都正常。
这个fiddle是一个示例,它显示自上次刷新以来的平均FPS:http://jsfiddle.net/kmKZa/55/ (我基本上从教程网站复制了代码)
如果有人有任何想法,我想知道如何防止这些可怕的CPU峰值。提前感谢您的任何建议!