似乎当我setInterval持续 1000 毫秒时,它实际上每 1001 毫秒左右触发一次该功能。这导致运行时间越长,时间漂移越慢。
var start;
var f = function() {
    if (!start) start = new Date().getTime();
    var diff = new Date().getTime() - start;
    var drift = diff % 1000;
    $('<li>').text(drift + "ms").appendTo('#results');
};
setInterval(f, 1000);
运行时,这会立即显示不准确。
- 0ms
 - 1ms
 - 2ms
 - 3ms
 - 4ms
 - 5ms
 - 5ms
 - 7ms
 - 8ms
 - 9ms
 - 9ms
 - 10ms
 
自己看看:http : //jsfiddle.net/zryNf/
那么有没有更准确的计时方法呢?或者一种使setInterval行为更准确的方法?