2 つのメソッド: 1. setTimeout タイマーをクリアするには、clearTimeout() を使用します (構文「clearTimeout (タイマー戻り値)」)。2. setInterval タイマーをクリアするには、clearInterval() を使用します。構文「clearInterval (戻り値)」 )」。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
#JS の 2 つのタイマー
window.setTimeout([関数],[間隔])
#タイマーを設定し、待ち時間を設定します。時間が経過すると、対応するメソッドが実行され、メソッドの実行が完了するとタイマーが停止します。
タイマーを設定し、待ち時間を設定し、時間になったら対応するメソッドを実行します。
メソッドの実行が完了しても、タイマーは停止しません。対応するメソッドは、手動でタイマーをクリアするまで、今後も定期的に再実行されます。
注: setTimeout() はコードを 1 回だけ実行します。複数回呼び出す場合は、setInterval() を使用するか、コード自体で setTimeout() を再度呼び出すようにします。
タイマーの戻り値JS のタイマーには戻り値があり、戻り値は現在のタイマーを表す数値です。
var timer1=window.setTimeout(function(){},1000); //timer1->1 当前是第一个定时器 var timer2=window.setTimeout(function(){},1000); //timer2->2` 当前是第二个定时器 var timer3=window.setTimeout(function(){},1000); //timer3->3 当前是第三个定时器
なお、タイマーをクリアしても戻り値はクリアされず、後から設定したタイマーの戻り値は戻り値に基づいてキューイングされ続けます。
タイマーをクリアする方法タイマーが時間内にクリアされない場合、メモリ オーバーフローが発生する危険性があります。したがって、タイマーを使用する場合は、適切なタイミングでタイマーをクリアすることを考慮する必要があります。
クリア タイマーには 2 つの関数があります。
clearTimeout(id_of_settimeout)
# を介してのみ破棄できます。 ##定義: setTimeout()メソッドで設定したスケジュール実行機能をブロック/キャンセルします。
パラメータ: id_of_settimeout は、setTimeout() 関数を呼び出したときに返される ID 値であり、返された識別子をパラメータとして使用すると、setTimeout() で設定されたスケジュールされた実行操作をキャンセルできます。 注:clearTimeout(id_of_setinterval) メソッドを使用するには、スケジュールされた操作を作成および実行するときにグローバル変数を使用します。var myVar = setTimeout(function(){ alert("Hello"); }, 3000); clearTimeout(myVar);
function testTimeout () { console.log('1111') console.log(setTimeout(testTimeout, 3000)); }
var timeHandle = null; function testTimeout () { if (timeHandle) { // 调用之前,先清理,防止一直生成对象 // ps. setInterval 定时器也应该按这种模式处理 clearTimeout(timeHandle); timeHandle = null; } console.log('1111'); console.log(timeHandle = setTimeout(testTimeout, 3000)); }
clearInterval(id_of_setinterval)
定義: setInterval()関数で設定したスケジュール実行操作をキャンセル/停止できます。
パラメータ: id_of_setinterval は、setInterval() 関数を呼び出したときに返される ID 値であり、返された識別子をパラメータとして使用することによってのみ、setInterval() で設定されたスケジュールされた実行操作をキャンセルできます。 注: clearInterval() メソッドを使用するには、スケジュールされた操作を作成および実行するときにグローバル変数を使用します。var myVar = setInterval(function(){ myTimer() }, 1000); clearInterval(myVar);
function testInterval () { console.log('1111') console.log(setInterval(testInterval, 3000)); }
var timeHandle = null; function testInterval () { if (timeHandle) { // 调用之前,先清理,防止一直生成对象 clearInterval(timeHandle); timeHandle = null; } console.log('1111'); console.log(timeHandle = setInterval(testInterval, 3000)); }
拡張知識: setTimeout を使用して setInterval の動作をシミュレートする
通常: setTimeOut() を再帰的に使用すると、その効果は setInterval() を使用した場合と同等になります
利点: コードの簡素化//实现的方法挺简单的 ,如下代码 //参数: 毫秒 需要执行的方法 function console1() { console.log(111); if(timer){ clearTimeout(timer); } timer = setTimeout(function(){ console1(); }, 3000); } console1()
Web フロントエンド ]
以上がES6でタイマーをクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。