【JavaScript】一定時間ごとに処理を実行する方法|スリープ復帰時にも実行
今回は、JavaScriptで一定時間経過ごとに処理を実行させる方法となります。
例ではデバイスがスリープした際に、その経過時間も含む一定時間ごとに処理を実行させます。そことにより、スリープ復帰時に指定した時刻を超えていた場合にも処理を実行させます。
JavaScriptで一定時間ごとに処理を実行する方法(スリープ時間も含む)
以下の例は、10分経過ごとに指定した処理を実行させる方法となります。
document.addEventListener('DOMContentLoaded', function(){
// 経過時刻の計算に利用する、現在の時刻を取得
let startTime = Date.now();
// setInterval()で5秒毎に実行
setInterval(function() {
// 変数startTimeの時刻から10分経過した場合
if (Date.now() > (startTime + ( 10 * 60 * 1000))) {
// 実行させる処理を記述
// 経過時刻の計算に利用する、現在の時刻を更新
startTime = Date.now();
}
}, 5000);
}, false);
JavaScriptの説明
setInterval メソッドは、一定の遅延間隔を置いて、コールバック関数を繰り返し呼び出します。
上記コードでは、まず、現在時刻を取得して変数startTimeにセットします。そして、setInterval()を5秒ごとに実行させます。
setInterval()の繰り返し処理は、スリープ中は停止するため、10分経過の判断はコールバック関数内で次の通り行っています。
現在の時刻が、変数startTime内の時刻 + 10分を超えていた場合に、指定した処理を実行します。そして、変数startTimeの値に現在の時刻をセットします。
それにより、スリープ時間も含む一定時間ごとに処理を実行させています。