質問: setInterval(function(){ if(条件分岐){ clearInterval(id); } }, 10); ``` --- **Q1.こういうやり方をしても良いでしょうか?** ・setIntervalは本来、アニメーションなどで繰り返し処理をするためのもの? ・目的外使用? --- **Q2.監視目的でsetIntervalを使用することのデメリットは?** ・trueになるまで確認しつづける、ということは、ブラウザに負担がかかる、ということでしょうか? ・ユーザがそのページを見る際、ブラウザ動作が重くなることがあり得る? ・負担があるとすれば、実行間隔よりも、繰り返し処理する内容に依存する??
回答: そういった目的に `setInterval()` を使用しても構いませんが、 * とうぜん、約「実行回数 × 処理内容」のCPUコストがかかります。ブラウザのプロセスが重くなるかもしませんし、OS 全体が重くなるかもしれませんし、バッテリーの消費が増えるかもしれません。 * 自身の管理下にあるコードでの状態変化を監視するのなら、通常は `setInterval()` はいらないはずです。オブザーバパターンなどが役に立ちます。 何を監視して何をしたいのかを書いたほうがより良い回答が得られるのではないかと思います。たとえば、DOMの変更を監視したいなら`MutationObserver`が最適な手段かもしれません。