我正在为爱好构建 JavaScript/HTML5 中的节拍器(最终应该是 FirefoxOS 应用程序)。我遇到的问题是抖动,这对节拍器来说是不行的。我知道 JavaScript 是单线程的,不存在关于进程优先级的控制。这就是我所拥有的:
function tick() {
var next_tick_bpm = parseInt(document.getElementById("bpm").value);
if (started) {
if (next_tick_bpm > 0) {
var next_tick_ms = 60000 / next_tick_bpm;
beep();
setTimeout(tick, next_tick_ms);
} else {
toggle();
}
}
}
除了 setTimeout 之外还有其他东西吗(我也尝试过 setInterval 得到相同的结果)?也许一些用于更精确计时器的本机浏览器代码?
谢谢,
- 约翰内斯