トップページ » Program » Javascipt の時間を考える。繰り返しの処理を何秒後かに止める
Javascipt の時間を考える。繰り返しの処理を何秒後かに止める
2013/10/24
手法1. (new Date).getTime() でループを制御
何秒間かループ処理を繰り返す例です。
ループの条件がもっと何かいい方法がありそうですが、力至らず。
ブラウザの状況によるみたいですが、この書き方で最高一秒間に170,000回ぐらい回りました。
例. for文
<script> //ループ前の時間を取得して、1秒後を足しておく var t = (new Date).getTime() + 1000; //ループの度に時間を取得して一秒後( t 以上)になったら終了。 for ( i = 0 ; (new Date).getTime() < t ; i++){ document.write( i + "テスト中<br>"); } </script>
(new Date)は、new Date()と同じです。なんとなく(new Date)のほうが見やすくて最近こちらを使ってます。
例. while文
<script> //ループ前の時間を取得して、1秒後を足しておく var t = (new Date).getTime() + 1000; //ループの度に時間を取得して一秒後( t 以上)になったら終了。 var i = 0; while ( (new Date).getTime() < t ){ document.write( i + "テスト中<br>"); i++; } </script>
getTimerについて詳しくはこちらをどうぞ
手法2. Date.now() ※IE9+
ほぼ一緒ですが、こちらのほうが少しだけ早い気がします。
ただ、IEは9以上でないとダメです。
他のブラウザはほぼ大丈夫。
<script> //ループ前の時間を取得して、1秒後を足しておく var t = Date.now() + 1000; //ループの度に時間を取得して一秒後( t 以上)になったら終了。 for ( i = 0 ; Date.now() < t ; i++){ document.write( i + "テスト中<br>"); } </script>
Date.now()について詳しくはこちらをどうぞ
似た内容のおすすめ記事