JS魔法堂:函数节流(throttle)与函数去抖(debounce)

本文介绍了JavaScript中的函数节流(throttle)和函数去抖(debounce)的概念,提供了简单的实现方式,并剖析了underscore库v1.7.0中相关函数的源码,强调了在处理时间间隔和系统时间修改情况下的处理策略。此外,还分享了前端工程师的学习资源和面试准备建议。
摘要由CSDN通过智能技术生成

复制代码

/**

  • 空闲控制 返回函数连续调用时,空闲时间必须大于或等于 idle,action 才会执行

  • @param idle {number} 空闲时间,单位毫秒

  • @param action {function} 请求关联函数,实际应用需要调用的函数

  • @return {function} 返回客户调用函数

*/

debounce(idle,action)

复制代码

2. 简单实现

复制代码

var debounce = function(idle, action){

var last

return function(){

var ctx = this, args = arguments

clearTimeout(last)

last = setTimeout(function(){

action.apply(ctx, args)

}, idle)

}

}

复制代码

三、什么是throttle

1. 定义

如果将水龙头拧紧直到水是以水滴的形式流出,那你会发现每隔一段时间,就会有一滴水流出。

也就是会说预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期。

接口定义:

复制代码

/**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值