在浏览器环境,setTimeout并且setInterval是不可靠的准确性-在时间敏感性的问题.
最近,我们已经给出了requestAnimationFrame,这使我们能够做得更好(就时间performance.now()和时间而言).
长话短说 - 我决定在Javascript中构建一个节拍器,虽然它有效,但它在某个节奏之上是相当不准确的.虽然补偿后期帧可以使节奏不随时间变化,但是个别节拍略微偏离,这对节拍器不起作用.(这对于动画来说不是问题,因为它本质上不需要是离散的.)
现在,我可以选择尝试根据我指定的阈值执行前瞻,尝试在可用帧之间放置点击(setTimeout在动画循环中使用).但我想,setTimeout由于事件循环,我会遇到类似的问题,因为浏览器不可靠,除非HTML5 Audio API允许你延迟播放几毫秒.
我的问题:是否setTimeout和setInterval在一个网络工作者VS浏览器环境中更准确,更可靠?