js实现一个简单的节流操作

1、关于节流

节流就是用来控制某个函数在一定时间内触发次数,为了减少触发频率,以便提高性能或避免资源浪费。举个例子,我们经常会在网卡的时候一直点击请求加载某个页面或资源,这时候其实连续点击很多次其实也是没有效果。

2、简单分析

根据上面这个例子,我们就可以得到节流需要达到的目标:也就是说当我们在某个时间间隔内连续点击是没有效果的,当超过了这个时间点击才有效果,从而大大减少了请求触发的次数,从而达到了“节流”的目标。

3 代码实现

这里以一个简单的点击事件的节流为例子,实现的效果为一秒内连续点击不触发函数,超过点击一秒才触发。

<script>
        let d = document.querySelector("div");  //声明并绑定一个用来点击的元素
        function fn1() {
            console.log("没节流");
        }
         //节流函数
        function throttle(fn, delay) {  

            var timer = null;
            return function () {  //回调函数:如果一秒内连续点击那么就会清空计时器,重新计时
                if (timer != null) {
                    console.log("节流中");
                    clearInterval(timer);
                }

                timer = setInterval(fn, delay);

            }
        }
        d.addEventListener("click",throttle(fn1,1000));  //绑定一个点击事件
    </script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
节流函数是一种在特定时间内限制函数执行频率的实用工具。在JavaScript中,你可以使用节流函数来控制一个函数的执行速度,例如限制鼠标事件处理函数的执行频率,或者控制定时器的间隔。 以下是一个简单JavaScript节流函数的实现: ```javascript function throttle(func, delay) { let lastCall = 0; return function(...args) { const now = new Date().getTime(); if (now - lastCall < delay) { return; } lastCall = now; return func.apply(this, args); }; } ``` 这个节流函数接受两个参数:一个是你想要限制频率的函数,另一个是延迟时间(以毫秒为单位)。这个函数返回一个新的函数,当你调用这个新函数时,如果过去的延迟时间已经过去,那么就会执行原始的函数,否则就会忽略这次调用。 以下是如何使用这个节流函数的例子: ```javascript // 假设有一个需要频繁执行的函数 function expensiveFunction() { // 这里是一些昂贵的操作... } // 使用节流函数限制其执行频率 const throttledFunction = throttle(expensiveFunction, 200); // 每200毫秒执行一次 // 在某个需要频繁触发的事件上使用节流函数 document.addEventListener('mousemove', throttledFunction); ``` 在这个例子中,`expensiveFunction`被限制在每200毫秒执行一次。这样就可以避免频繁的执行导致性能问题。注意,这个节流函数只对浏览器的事件处理函数有效,因为它依赖于浏览器的定时器系统。对于其他类型的函数,你可能需要使用不同的方法来实现节流
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值