停止 setTimeout 循環
使用精靈建立載入指示器時,通常會依賴循環來循環背景位置。一種方法是使用 setTimeout 函數,但是如果您需要在載入過程完成時停止循環怎麼辦?
setTimeout 實作
JavaScript 中的 setTimeout 函數傳回計時器句柄,讓您使用clearTimeout 函數取消逾時。要實現此功能,您可以在setBgPosition 函數中建立一個stop() 函數:
function setBgPosition() { var c = 0, timer = 0; ... return stop; function stop() { if (timer) { clearTimeout(timer); timer = 0; } } }
要使用此功能,您可以將setBgPosition 函數指派給一個變量,然後呼叫stop() 函數來停止循環:
var stop = setBgPosition(); // ... later ... stop();
替代方法: setInterval
使用 setTimeout 的另一種方法是 setInterval,它以指定的時間間隔重複執行函數。以下是如何將其與clearInterval一起使用:
function setBgPosition() { ... return setInterval(run, 200); }
停止循環:
var timer = setBgPosition(); // ... later ... clearInterval(timer);
但是,建議探索用於檢測完成條件並允許setBgPosition停止循環的選項循環本身。這種方法在處理裝載作業時提供了更好的控制和靈活性。
以上是如何停止載入指標的 setTimeout 或 setInterval 迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!