前端节流防抖学习2--节流

上面说了防抖的,收获很多,在来看看节流,争取自己做出来
题目:有时候,用户会用滚轮滑动页面,滑动页面后,会产生请求,但是此时的请求页面结果并不是用户想要的,很有可能用户要滑动到某一处停下来后,去看页面,但是监听用户停下来的时候去发送请求,明显会造成不良的用户体验,小明心想,那么我就隔一段时间去处理一下请求不就可以了,于是小明写了如下代码:

function ajax(){
            console.log("发送请求");
        }
        var time = null;
        window.addEventListener("mousemove",function(e){
           if(time){
               return;
           }
           time = setTimeout(() => {
                ajax();
                time = null;  
            }, 3000);
})

但是呢,需要对其进行封装

function ajax(){
            console.log("发送请求");
            console.log(this);
            console.log(arguments)
        }
      
        window.addEventListener("mousemove",throttle1(ajax,1000));

        function throttle(fn,wait){
                var time = null;
                return function(){
                    if(time){
                        return;
                    }
                    time = setTimeout(() => {
                        fn.apply(this,arguments);
                        time = null;
                    }, wait);
                }
        }

        function throttle1(fn,delay){
                let pro = new Date();
                return function(){
                    let timer = new Date();
                    if(timer - pro>delay){
                        fn(arguments);
                        pro = timer;
                    }else{
                        return;
                    }
                }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值