Javascriptでアプリケーションを作成しています。アプリは、ユーザーが特定のアクションを実行してから1時間後に関数を実行する必要があります。関数を実行するためにこれらのスケジュールされたタスクを作成するために何を使用できますか?
ユースケースの説明:ユーザーが自分のステータスをクリックして「アクティブ」にします。1時間後、ステータスは自動的に「非アクティブ」に変更されます。
Javascriptでアプリケーションを作成しています。アプリは、ユーザーが特定のアクションを実行してから1時間後に関数を実行する必要があります。関数を実行するためにこれらのスケジュールされたタスクを作成するために何を使用できますか?
ユースケースの説明:ユーザーが自分のステータスをクリックして「アクティブ」にします。1時間後、ステータスは自動的に「非アクティブ」に変更されます。
あなたはそのために使うことができますsetTimeout()
:
var timer = setTimeout(function() {
// Task
}, 60 * 60 * 1000);
そしてclearTimeout()
、余分な場合にタイムアウトを停止するには:
clearTimeout(timer);
ステータスがアクティブに設定されたら、サーバーにメッセージを送信して時間を記録します。次に、以下のような定期的な関数を頻繁に実行して、時間が経過していないことを確認します。
function checkStatus( ) {
function check( ) {
//Check with server. Should I set status to inactive
var timer = setTimeout(check, 60 * 1000);
}
check();
}
ユーザーがブラウザを閉じて再度開いた場合、サーバーで時間が経過していない場合は、ステータスをアクティブに設定して、機能を実行し続けることができます。