JS 中防抖与节流

71 阅读1分钟

节流

节流: 在短时间内快速的触发一件事, 当一事件处理函数开始执行的时候, 在此期间, 不允许重复触发

const box = document.querySelector('input')

box.oninput = ((flag) => {
    return function (e) {
        if (!flag) return
        flag = false 
        setTimeout(() => {
        console.log(e.target.value)
        flag = true
        }, 300)
    }
})(true)

防抖

在短时间内快速的触发一件事, 每次都用新的事件替代上一次, 也就是说那么我们只会执行最后一次触发的事件

const box = document.querySelector('input')

box.oninput = (() => {
    let timerID = 0
    return function (e) {
        clearInterval(timerID)
        timerID = setTimeout (() => {
        console.log(e.target.value)
        }, 300)
    }
})()