如何实现javascript函数节流

发布时间:2021-06-17 09:11:49 作者:小新
来源:亿速云 阅读:87

小编给大家分享一下如何实现javascript函数节流,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1、用时间戳判断是否已到回调执行时间,记录上次执行时间戳,然后每次触发事件时执行回调,回调判断当前时间戳距离上次执行时间戳的时间间隔是否为*s,如果是,则执行,并更新上次执行时间戳,如此循环。

var throttle = function(delay, action) {
    var last = 0;
    return function() {
        var curr = new Date();
        if (curr - last > delay) {
            action.apply(this, arguments);
            last = curr;
        }
    }
}

2、使用定时器,比如,当scroll事件刚触发时,打印一个hello world ,然后设置一个1000ms的定时器,此后每次触发scroll事件,触发回调,如果已经存在定时器,则回调不执行方法,知道定时器出发,handler被清除,然后重新设置定时器。

var throttle = function(delay, action) {
    var timeout;
    var later = function () {
        timeout = setTimeout(function(){
            clearTimeout(timeout);
            // 解除引用
            timeout = null;
        }, delay);
    };
    later();
    if (!timeout) {
        action.apply(this, arguments);
        later();
    }
}

看完了这篇文章,相信你对“如何实现javascript函数节流”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 函数节流和防抖
  2. 性能优化之函数节流

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript

上一篇:javascript函数去抖是什么意思

下一篇:怎么用jquery+Ajax实现简单分页条

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》