[英]settimeout executes multiple times
點擊按鈕我每3分鍾后調用一次Ajax函數
intervalId = setTimeout(function(){ searchSiteDetailViaAjax() }, 180000);
在停止按鈕我停止這個
clearTimeout(intervalId);
intervalId = null;
最初幾次它工作正常,但在執行clearTimeout后,定時器一次又一次地調用Ajax函數。
聽起來你想要使用setInterval()
和clearInterval()
。 setTimeout()
只運行一次,你說你希望它每3分鍾運行一次,你就會想要使用setInterval()
。
setInterval MDN: https : //developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval
clearInterval MDN: https : //developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval
聽起來你可能需要調用clearTimeout(intervalId);
點擊,在你的setTimeout
調用之前。
聽起來你正在發生的事情就是將要執行的函數排隊,然后再次單擊該按鈕,排隊另一個執行並接收不同的句柄。 單擊停止按鈕將無法再清除導致多次執行的先前句柄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.