Web Workers:SetInterval和SetTimeout可靠性

jed*_*ung 9 javascript timeout web-worker html5-audio

在浏览器环境,setTimeout并且setInterval是不可靠的准确性-在时间敏感性的问题.

最近,我们已经给出了requestAnimationFrame,这使我们能够做得更好(就时间performance.now()和时间而言).

长话短说 - 我决定在Javascript中构建一个节拍器,虽然它有效,但它在某个节奏之上是相当不准确的.虽然补偿后期帧可以使节奏不随时间变化,但是个别节拍略微偏离,这对节拍器不起作用.(这对于动画来说不是问题,因为它本质上不需要是离散的.)

现在,我可以选择尝试根据我指定的阈值执行前瞻,尝试在可用帧之间放置点击(setTimeout在动画循环中使用).但我想,setTimeout由于事件循环,我会遇到类似的问题,因为浏览器不可靠,除非HTML5 Audio API允许你延迟播放几毫秒.

我的问题:是否setTimeoutsetInterval在一个网络工作者VS浏览器环境中更准确,更可靠?

İlk*_*kut 5

我们可以对你的问题说"是",网络工作者对于settimeout和setinterval函数是可靠的,因为web工作者根据ui在后台运行,所以他们为你提供非阻塞的ui事件(它们可能会影响节拍器速度),而你是处理持续的节拍器时间.

顺便说有大约网络工作者良好的文档在这里.