setIntervalを使って繰り返しを行う場合、次の繰り返しを行う最初にタイムラグが発生するのはなぜでしょうか?
これを回避するコードの書き方はありますか?
例えば・・
0.1秒ごとに1,2,3,4,5と数える動作を繰り返しする場合
画面には1,2,3,4,5,1,2,3,4,5・・・と表示されますが、1~5までは0.1秒ずつ数えますが、5から1に変わる時少しタイムラグが発生します。
タイムラグを発生させず、すべての数を数えるときは0.1秒ごとにできないものでしょうか?
コードは下記の通りです。
コンソールログに表示するのでjavascriptのみのコードとなります。
let i = 1;
const count = function(){
if( i > 5){
i = 1;
} else{
console.log(i);
i ++;
}
};
setInterval(count, 1000);
今回の質問の経緯につきましては、スライドショーでsetIntervalを使って5枚の画像を3秒ごとに自動再生する場合、5枚目から1枚目に変わる時に3秒の倍の6秒くらいかかりました。
5秒にすると10秒かかりました。
カウントする数と画像の枚数がおかしいのか画像が1枚余分に計算されているのかと思い、+1や▲1をしたりするなど比較をしてもダメなため、上記のような簡単なカウントを試してみた所、setIntervalの使い方が間違えているのか?又は追記すべきコードがあるのではないかと思い質問をさせていただきました。
どなたかお力を貸していただければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー