防抖和节流

发布时间:2024年01月17日

防抖

就是在n秒内只执行一次

代码


// fn回调函数  delay 回调的时间
function debounce(fn, delay) {
    var timer; // 维护一个 timer
    return function() {
        var _this = this;

        var args = arguments;
        if (timer) {
            clearTimeout(timer);
        }
        // 立即执行一次 不需要可以去掉
        if(!timer) {
            fn.apply(null)
        }
        timer = setTimeout(function() {
            fn.apply(_this, args);
            clearTimeout(timer);
        }, delay);
    };
}

节流

在一段时间内, 每n秒执行一次。

// fn要回调的函数  delay回调的时间
function throttle(fn, delay) {
    var timer;
    return function() {
        var _this = this;
        var args = arguments;
        if (timer) {
            return;
        }
        timer = setTimeout(function() {
            fn.apply(_this, args);
            clearTimeout(timer)
            timer = null;
        }, delay)
    }
}

文章来源:https://blog.csdn.net/weixin_43845059/article/details/135652083
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。