高頻時間觸發(fā),但n秒內(nèi)只會執(zhí)行一次,所以節(jié)流會稀釋函數(shù)的執(zhí)行頻率泊脐。
常應(yīng)用于鼠標不斷點擊觸發(fā)濒憋、監(jiān)聽滾動事件壶熏。
分解:
1.持續(xù)觸發(fā)并不會執(zhí)行多次
2.到一定時間再去執(zhí)行
演示圖
方法:
function throttle(func, ms = 1000) {
let canRun = true
return function (...args) {
if (!canRun) return
canRun = false
setTimeout(() => {
func.apply(this, args)
canRun = true
}, ms)
}
}
// 測試
const task = () => { console.log('run task') }
const throttleTask = throttle(task, 1000)
window.addEventListener('scroll', throttleTask)