1

質問があります: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秒です。または、機能の本体を実行するために時間によって引き起こされるいくつかの遅延がありますか?

4

2 に答える 2

1

いいえ、setTimeout()そしてsetInterval()予測できない精度があります。この他の質問で述べたように、タイムアウトを1回設定することで、すべてのもの(new Date()).millisecondsに使用する代わりに時間関連のアクションを実行するよりも精度を高めることができます。setTimeout()

于 2012-12-20T18:02:25.237 に答える
0

関数がありsetTimeout(fnc, delay)少なくともms後setTimeout(fnc, delay)に呼び出すと言われています。詳細については、 MDNを参照してください。fnc delay

于 2012-12-20T18:01:05.000 に答える