js:計時器setInterval\setTimeout

在開發(fā)中,相信大家都或多或少的遇到使用計時器功能,這次我就掉坑里了,花了一點(diǎn)時間才爬出來,這里給小伙伴們做了一個總結(jié),希望可以幫助到你們。

計時器類型

一次性計時器:僅在指定的延遲時間之后觸發(fā)一次。
間隔性觸發(fā)計時器:每隔一定的時間間隔就觸發(fā)一次。

計時器語法

1、定時器setInterval()

在執(zhí)行時,從載入頁面后每隔指定的時間執(zhí)行代碼。

# 注釋:交互時間,以毫秒計(1s=1000ms)
setInterval(() => { 需要執(zhí)行代碼 }, 交互時間)
# 取消由 setInterval() 設(shè)置的交互時間。
clearInterval() 

2、延遲器

在載入后延遲指定時間后,去執(zhí)行一次表達(dá)式,僅執(zhí)行一次。

setTimeout(代碼,延遲時間)
# setTimeout()和clearTimeout()一起使用,停止計時器。
clearTimeout()

計時器關(guān)閉失效問題

1、直接使用計時器語法創(chuàng)建和銷毀,銷毀失敗,這里有可能是環(huán)境問題,推薦window掛載:

const timer= window.setInterval(() => {
    // 執(zhí)行代碼
}, 5000)
# 某個節(jié)點(diǎn)銷毀
window.clearInterval(timer)

2、自己創(chuàng)建了多個計時器,關(guān)閉指令執(zhí)行的定時器找不到源頭問題。

const timer= null 
if (!timer) {
  timer= setInterval(() => {
     // 執(zhí)行代碼
  }, 5000)
}
# 某個節(jié)點(diǎn)銷毀
if (!timer) {
  clearInterval(timer)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容