个人对于节流的理解!

文章目录


前言

防抖和节流是前端经常会被提起以及涉及到的内容,更是前端性能优化的手段之一,我初学防抖和节流也遭遇了很多坑,所以想写一篇博客一则当作学习笔记,二则如果能帮助别人学习我就非常开心了!


一、节流是什么?

同样在学习和理解节流时不能把所有注意力集中在词的表面意思,节流只是别人理解的定义名称。

节流的例子在生活中也会比较常见例如去买火车票(这里我们需要假设每位乘客的购票书时间均是相同的),有多个乘客敲售票员的窗口,但售票员只会对第一个乘客进行售票处理,会忽略后面乘客的敲窗口的行为。这个例子就是一种节流现象。我所理解的节流就是通过定时器等设置在一定的时间范围内让事件处理函数只响应第一次事件源的触发而忽略后面相同的事件触发源


二、节流的实现

<button id="fd" type="button">节流按钮</button>
    <script>
        let btn = document.querySelector("#fd")
        function sayhello(){
            console.log("我是恩格拉拉里克")
        }
        function JLIU(func,time){
            let tim
            return function(){
                if(tim)
                {
                    return
                }
                tim=setTimeout(function(){
                    func()
                    tim = null
                }, time);
            }
        }
        btn.addEventListener('click',JLIU(sayhello,3000))
    </script>

节流函数执行效果:

 

可以看到在特定的时间长度内事件只响应了第一次,但在两倍的时间长度下事件会响应所规定时间的倍数次。

总结

节流是前端开发中所常用的提高性能的方式之一,节流的实现涉及到了很多js中的关键知识,理解完防抖理解节流的思想就会比较容易,如果文章出现什么不对的地方欢迎大家的纠正,希望共同进步!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值