JavascriptでsetIntervalメソッドとclearIntervalメソッドを試していますが、問題が発生しています。私がしようとしているのは、ほとんどの時間 ""秒ごとに名目上呼び出される関数ですが、特定の間隔ではより頻繁に実行されます。私はこれまでコンセプトの証明である何かの不完全な裸の骨であるコードを閉じ込めました - この例では、10分ごとに分が表示されます。そうでなければ30〜40分(ダミーの値を使って動作させることができるかどうかを確認する)、ディスプレイは1秒ごとに更新されます。しかし、私は、setIntervalがまだ動作しているかどうか、また再起動する方法( "myVar"変数)を確認することができないことに気付きました。Javascriptを変更するsetInterval
<!DOCTYPE html>
<html>
<body>
<p id="demo">Just testing...</p>
<script>
var d = new Date();
myVar = setInterval(informUser, 10000);
function informUser()
{
if (d.getMinutes()>30 && d.getMinutes()<40) // every second
{
clearInterval(myVar);
mvVar = setInterval(informUser, 1000);
document.getElementById("demo").innerHTML = d.getMinutes();
}
else // else 10 seconds
{
document.getElementById("demo").innerHTML = d.getMinutes();
}
}
</script>
</body>
</html>
私がレンガの壁に突き当たったときのコードは非常に不完全です。一度作業したら、もう少し複雑にすることができます。 EDIT:
構文に関するご意見ありがとうございましたが、ここでは問題はありません。 現時点でコードが実行していることは、時間の31分に達するまで10分ごとに画面に分を出力します。その後、タイマーを停止し、1秒間隔でタイマーを開始します。 9分後に、タイマーが開始されていないためコードが停止します。
myVarがnullであるかどうかを確認するには、 "else // else 10 seconds"セクションにあります。そうであれば、10秒間隔でタイマーを再起動します。
'setInterval'関数の最初のパラメータは、関数への**参照**である必要があります(その呼び出しが別の関数への参照を返さない限り、関数の呼び出しではありません)。あなたは 'setInterval(informUser、X)'を使用するべきです – Dekel
ありがとう、私は上にそれを変更します(できる場合) – user3713442
あなたは変更することができますが、あなたの質問への答えです。あなた自身のコードでそれを更新し、チェックしてください。あなたの問題を解決するはずです。 – Dekel