防抖和节流的区别

一、理解防抖和节流

防抖:在单位时间内频繁触发事件,只有最后一次生效

节流:在单位时间内频繁触发事件,只生效一次(也就是只有第一次生效)

防抖和节流都是性能优化的一种手段

二、相同点

1.都可以通过使用 setTimeout 来实现

2.都可以降低回调执行频率,节省计算资源

三、不同点

定义不同

函数防抖:一段时间内连续触发事件,只执行最后一次

函数节流:一段事件内只执行一次

四、代码实现

1、防抖

var btn = document.getElementById("btn")
    var time = null
    btn.onclick = function () {
        clearTimeout(time)
        time = setTimeout(function () {
            console.log("点击了");
        }, 5000)
    }

2、节流

 var btn = document.getElementById("btn")
    var flag = true
	btn.onclick = function () {
        if (flag) {
            console.log("点击了");
            flag = false
            setTimeout(function () {
                flag = true
            }, 5000)
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值