防抖与节流

本文分享了JavaScript中防抖(_debounce)和节流(_throttle)函数的实现代码,这两个函数常用于优化性能,例如在长列表滚动、事件监听等场景下。防抖函数避免频繁调用,而节流函数则限制执行频率。通过引入并使用这些函数,可以有效地提升用户体验,减少不必要的计算或操作。

防抖与节流

我和其他人不一样,我直接上代码并且教你如何使用

// 防抖函数
export function _debounce(fn, delay, immediate) {
    var delay = delay || 200;
    var timer;
    return function () {
        var th = this;
        var args = arguments;
        if (timer) {
            clearTimeout(timer);
        }
        if (immediate) {
            var callNow = !timer
            timer = setTimeout(() => {
                timer = null;
            }, delay)
            if (callNow) fn.apply(th, args)
        } else {
            timer = setTimeout(function () {
                timer = null;
                fn.apply(th, args);
            }, delay)
        }
    }
}
//节流函数
export function _throttle(fn, interval, type) {
    if (type === 1) {
        let previous = 0;
    } else if (type === 2) {
        let timeout;
    }
    var interval = interval || 200;
    return function () {
        var th = this;
        var args = arguments;
        if (type === 1) {
            let now = Date.now();
            if (now - previous > interval) {
                fn.apply(th, args);
                previous = now;
            }
        } else if (type === 2) {
            if (!timeout) {
                timeout = setTimeout(() => {
                    timeout = null;
                    fn.apply(th, args)
                }, interval);
            }
        }
    }
}

以上放在util文件里面
在你要用的页面引入之后,用法:

//你定义的方法
<p @click="delateData" :plain="true">删除</p>
// 你的使用
    delateData: _debounce(function () {
      this.$message({
        message: "下载成功",
        type: "success"
      })
    }, 1000),
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值