js 防抖函数避免重复点击提交

/**
     * @description: 函数防抖:多次执行只执行最后一次
     * 场景:搜索联想c 重复提交 瀑布流加载
     * @param function fn 
     * @param Number delay
     * @return function
     */    
    deounce( fn, delay ) {
        delay = delay || 1000 ;
        let timer 
        return function(){
            if( timer ) clearTimeout( timer ) 
            timer = setTimeout(() => {
                fn.apply(this, arguments)
            }, delay);
        }
    }, 

    /**
     * @description: 函数节流:多次执行变为每隔一段时间执行
     * 场景:搜索联想 重复提交 瀑布流加载
     * @param function fn
     * @param Number delay
     * @return function
     */    
    throttle( fn, delay) {
        delay = delay || 1000;
        let timer = null;
        return function(){
            if( !timer ){
                timer = setTimeout(() => {
                    fn.apply(this, arguments)
                    clearTimeout(timer)
                }, delay);
            }
        }
    },
.method("answer", deounce(function () {
   
    
  },500))

使用防抖 连续点击按钮时,只有最后一次操作会触发请求,前面点击的不会请求到方法中,避免多次提交;

注意deounce的位置,要在function外层,否则会不生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值