簡體   English   中英

settimeout執行多次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM