Skip to content

防抖

114 字小于 1 分钟

js

2024-12-28

防抖

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。

let input =document.querySelector('input')
    function ajax(param) {
        console.log(param);
    }
    input.addEventListener('input',(e) => {
         debounceAjax(e.target.value)
    })
    function debounce(fn,wait) {
        let timer = null
        let that = this
        return function(param) {  
            clearTimeout(timer)
            timer = setTimeout(() => {
            fn.call(that,param)
            },wait)
        }      
    }
let debounceAjax = debounce(ajax,1000)