在浏览器环境中,当时间敏感性成为问题时,
最近,我们拥有了
长话短说——我决定用Javascript构建节拍器,虽然它可以工作,但在某个速度以上它非常不准确。虽然通过补偿迟到的帧可以使节奏不会随着时间而失步,但是单个节拍略微偏离,这对于节拍器不起作用。(这对于动画来说不是问题,因为它本质上不需要离散值。)
现在,我可以尝试根据我指定的阈值执行前瞻,以尝试将点击放置在可用帧之间(在动画循环中使用
我的问题是:在Web Worker中,
setTimeout
和 setInterval
的准确性不可靠。最近,我们拥有了
requestAnimationFrame
,它使得我们在performance.now()
和其时间戳方面更加准确。长话短说——我决定用Javascript构建节拍器,虽然它可以工作,但在某个速度以上它非常不准确。虽然通过补偿迟到的帧可以使节奏不会随着时间而失步,但是单个节拍略微偏离,这对于节拍器不起作用。(这对于动画来说不是问题,因为它本质上不需要离散值。)
现在,我可以尝试根据我指定的阈值执行前瞻,以尝试将点击放置在可用帧之间(在动画循环中使用
setTimeout
)。但是,我想象中,由于事件循环,setTimeout
在浏览器中不可靠,除非HTML5音频API允许您延迟播放若干毫秒。我的问题是:在Web Worker中,
setTimeout
和setInterval
比浏览器环境更准确可靠吗?