私は趣味で 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 も試しました)? より正確なタイマーのためのネイティブブラウザコードでしょうか?
ありがとう、
- ヨハネス