指定時間経過後に処理を実行
指定時間経過後に処理を実行させたい場合は、setTimeout
関数を使用します。
setTimeoutの処理を停止(中断)する場合は、clearInterval
関数を使用します。
setTimeoutは1回のみ実行されます。
なお、再帰的にsetTimeoutを使用している場合、指定している関数の処理が完了するまでタイマーは開始されません。
構文
一定間隔での処理
var id = setTimeout(callback, milliseconds);
処理の停止(中断)
clearTimeout(id);
setTimeoutl関数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
callback | function | 第二引数で指定した秒数に達した時に処理する関数 |
第二引数 必須 |
milliseconds | number | 処理間隔(ミリ秒) |
clearTimeout関数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
id | number | 停止(中断)するsetTimeout関数の処理ID(戻り値) |
戻り値
setTimeout関数は、処理IDを返します。
第二引数の指定時間(現在の時刻 + 第二引数の秒数)でキューに入れ、指定時間到達後に第一引数で指定した関数を実行します。
到達後、指定関数の処理に関係なく(clearTimeoutでリセットされることを除く)、即時に第二引数の指定時間でキューに入れるといった感じで更新と処理が繰り返されます。
実行中のキューや待機中のキューが存在する場合は、指定した時間に到達しても他のキューが終了するまでは処理されず待機のキューとして追加され、順番待ちの状態となります。
デモ
サンプルでは、5秒後にテキストを表示しています。
サンプルコード
JavaScript
setTimeout(function() {
document.getElementById('text').value = '5秒経過しました。';
}, 5000);