- ベストアンサー
setTimeOutとsetInterval、どっちが良いのか
最近、あらゆるところで動的なアニメーションを見ます。 例えば情報を表示するのにイーズイン・イーズアウトしたり画像をフェードさせたりといった視覚効果上のアクセント的に使われるものです。 これらはほんの短い間だけsetTimeOutかsetIntervalで関数を何度も実行して実現させていますが、この両者はどちらの方が優れているのでしょうか? プロのサイト数箇所でソースを覗いてみましたが、なぜかどこもsetTimeOutを使っていました。setIntervalではいけない理由があるのでしょうか?自分で実験してみたところ、両者に処理速度の差はほとんど見られませんでした(そのごくわずかな違いについて言えばいつもせtTimeOutが勝ちますが)。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
setTimeoutで正解です。 setTimeoutはスタックやランタイムを考慮します。 setInterval はそんなことには無関係に杓子定規に指定時間間隔で 処理を機械的にします。 なので、重い処理だと、完了していないのに、時間切れで次の処理 を実行して大変な修羅場になります。
その他の回答 (1)
- PED02744
- ベストアンサー率40% (157/390)
回答No.2
目的が違うのです。 setTimeOut()は、指定された時間「待ってから」指定された動作を行う関数です。 setTimeInterval()は、指定された時間「間隔ごとに」指定された動作を行う関数です。 処理の開始を待ちたいのであれば「setTimeOut」を使いますし、 定周期で何回も同じ処理を繰り返したいのなら「setTimeInterval」を使います。