首页 > 其他 > 详细

节流的实现方式

时间:2020-05-20 19:19:05      阅读:64      评论:0      收藏:0      [点我收藏+]

时间戳方式

function throttle(func, delay) {
        // 首先获取使用节流机制时的时间
var prev = Date.now(); return function () {
          // 再获取调用时的时间
var now = Date.now(); var context = this; var args = arguments;
          // 若两个时间差超过了设置的时间,调用函数
if (now - prev >= delay) { func.apply(context, arguments) } prev = Date.now; } }

定时器方式

设置定时器,延迟时间后执行相应函数,并清除该定时器。后续函数调用,必须在定时器为null的情况下,才能执行。

function throttle(func, delay) {
            var timer = null;
            return function () {
                var context = this;
                var args = arguments;
                if (!timer) {
                    timer = setTimeout(()=>{
                        func.apply(context, args)
                        clearTimeout(timer)
                    },delay)
                }
            }
        }

 

节流的实现方式

原文:https://www.cnblogs.com/ashen1999/p/12924866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!