在開發(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)
}