【发布时间】:2016-05-30 11:14:08
【问题描述】:
我有一个以毫秒为单位的 JavaScript 函数数组和延迟:
var events = [
{event: function_1, delay: 1234},
{event: function_2, delay: 2456},
...
{event: function_n, delay: 13154}
]
还有一个影片剪辑。这个想法是在电影播放时按照延迟参数给出的顺序执行函数。一种方法是:
video.play();
for ( var i = 0; i < events.length; i++ ) {
setTimeout(events[i].event(), events[i].delay);
}
有没有更好的方法来保证准确的时间?
【问题讨论】:
-
您可以查看requestAnimationFrames。如果间隔是固定的,你甚至可以试试
setInterval。像这样的东西:function initTimer(){ var count = 0; selInterval(function(){ events[count].event}, delay) } -
只需通过
setInterval使用一个计时器 -
我投票结束这个问题作为离题,因为它要求更好的编码方式。这听起来像是 codereview.stackexchange.com 的工作
-
您需要它们按顺序执行吗?当第一个执行时,第二个应该开始?
-
是的,第二个应该在达到延迟时开始。
标签: javascript scheduled-tasks settimeout