【发布时间】:2014-12-11 22:59:44
【问题描述】:
有人能解释为什么turnEvenOld(250, 250)(0.089ms) 的运行速度比turnEvent(250, 250)(0.447ms) 快得多吗?
我认为使用requestAnimationFrame() 比setInterval() 运行起来更快更便宜?
setInterval():
var turnEventOLD = function turnEvent(AnX, AnY) {
----VARIABLES----
temp = setInterval(myAnimation1, 1000/60);
function myAnimation1() {
----DRAWINGCANVAS------
-----
----CONDITIONS--------
if (one301 && one401) {
clearInterval(temp);
}
}
}
requestAnimationFrame():
var turnEvent = function turnEvent(AnX, AnY) {
----VARIABLES-----
function render() {
----DRAWING CANVAS-----
------
----CONDITIONS---------
if (one301 && one401) {
---stop requestAnimation--
}
}
(function animloop(){
----CONDTION-----
requestAnimationFrame(animloop);
render();
})();
}
【问题讨论】:
-
turnEventOLD 不起作用(延迟函数除外),turnEvent 在完成之前调用渲染。还要记住,requestAnimationFrame() 可能会导致每秒运行超过 60 次渲染,因此会占用更多 CPU。
标签: javascript performance jsperf