javascript与实时的时间安排

时间:2012-12-20 17:54:00

标签: javascript

我有一个问题:当我在JavaScript中倒数时,我有一个函数:

        <script>
var interval;
var minutes = 1;
var seconds = 5;
window.onload = function() {
    countdown('countdown');
}

function countdown(element) {
    interval = setInterval(function() {
        var el = document.getElementById(element);
        if(seconds == 0) {
            if(minutes == 0) {
                el.innerHTML = "countdown's over!";                    
                clearInterval(interval);
                return;
            } else {
                minutes--;
                seconds = 60;
            }
        }
        if(minutes > 0) {
            var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
        } else {
            var minute_text = '';
        }
        var second_text = seconds > 1 ? 'seconds' : 'second';
        el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
        seconds--;
    }, 1000);
}
</script>

每个功能执行之间的时间恰好是1秒。或者由于执行功能而导致时间延迟?

2 个答案:

答案 0 :(得分:1)

不,setTimeout()setInterval()具有不可预测的准确性,如this other question中所述,您可以通过设置超时一次而不是使用(new Date()).milliseconds来做与时间相关的更高精度行动而不是setTimeout()用于每件事

答案 1 :(得分:0)

有些函数setTimeout(fnc, delay)setTimeout(fnc, delay)据称在至少 fnc ms之后调用delay。有关详细信息,请参阅MDN