防抖

防抖:是为了防止手抖在一个固定时间内,重复点击提交,所以需要一个触发事件,定时器setTimeout, 一个清除定时器clearTimeout 
// 防抖

const btn = document.querySelector('#btn')

function pay () {
    console.log('已剁手')
    console.log(this)
}

function debounce (func, delay){
    let timer;
    return function (){
        let context = this;
        clearTimeout(timer);
        timer = setTimeout(function (){
            func.call(context)
        }, delay)
    }
}

btn.addEventListener('click', debounce(pay, 500))
1,逻辑是:首先点击事件,清除定时器,重新设置一个定时器,
2,如果在规定时间内有点击操作,就清除定时器,重新计时。
3,如果在规定时间内没有点击操作,就可以执行表单提交了。
 
原文地址:https://www.cnblogs.com/yizhilin/p/14932438.html