js的防抖和节流详细介绍

js的防抖和节流主要用在监听输入框监听页面滚动等一些高频触发事件,让这些事件既能保持高频触发,但又不浪费性能。
首先介绍防抖(debounce)定义一个防抖函数,可直接复制使用,注意使用方法。
var debounce=function(fn, wait){
	var timer = null;
    return function(){
        if(timer!== null)   clearTimeout(timeout);        
        timer= setTimeout(fn, wait);    
    }
};
function yourfunc(){
	console.log(Math.random())
};
window.addEventListener('scroll',debounce(yourfunc,1000));
上面相当于在监听页面滚动的时候,每隔1秒执行一次你的函数
然后是节流(throttle )定义一个节流函数,可直接复制使用,注意使用方法。
var throttle = function(func, delay) {            
  var timer = null;            
    return function() {                
        var context = this;               
        var args = arguments;                
        if (!timer) {
            timer = setTimeout(function() {                        
                func.apply(context, args);                        
                timer = null;                    
            }, delay);          
        }            
    }      
}  
function yourfunc() {
  console.log(Math.random());        
}        
window.addEventListener('scroll', throttle(yourfunc, 1000));
上面相当于在监听页面滚动的时候,1秒内只执行一次你的函数
两种方式区别在于:
防抖是每1秒执行一次函数(秒数自己控制)
节流是一秒内只执行一次函数(秒数自己控制)
根据需求自行选择使用

如有错误,请指正

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鸣blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值