3

これを行うと、60秒ごとに関数を実行できます。

        Timer: function() {
           setInterval(fxn, 60000)
        },

しかし、1 分ごとに関数を実行する方法はありますか? IE は 11:20:00、11:21:00 などですか?

4

3 に答える 3

10

あなたはそれを行うことができますsetTimeout()

function onTheMinute(fn) {
  function ms() {
    var now = new Date();
    return (60 - now.getSeconds()) * 1000;
  }

  function timer() {
    fn();
    setTimeout(timer, ms());
  }
  setTimeout(timer, ms());
}

これにより、次の分の境界でタイムアウトが発生するように設定され、それが発生したときに関数が呼び出されます。毎回、新しいタイマーが次の分に設定されます。

ミリ秒もチェックすると少し正確になりますが、とにかくタイマーはそれほど正確ではありません。

于 2013-09-05T16:36:06.643 に答える
1

タイマーの最初の実行を次の 1 分ごとにプログラムし、1 分ごとに間隔を設定します。

(function () {
    var nextExecution = ((60 - (new Date()).getSeconds()) * 1000),
        fnx = function () {
            document.getElementById("sec").innerHTML = (new Date()).getMinutes();
        };
    setTimeout(function () {
        fnx();
        setInterval(fnx, 60 * 1000);
    }, nextExecution)
}());
于 2013-09-05T16:51:52.560 に答える
0

いいえ。

JavaScript はイベントベースです。唯一の方法は、タイマーを毎秒 (またはそれ以上) 実行し、適切な時間であれば関数を実行することです。

ここにドイツ語の素晴らしいチュートリアルがありますが、 Googleの翻訳者が役立つと思います.

于 2013-09-05T16:33:53.587 に答える