js 节流 throttle

本文介绍了一种JavaScript节流函数实现,用于限制在指定延迟后执行函数,并结合处理频繁点击的策略。通过`throttle`函数,确保在用户操作间隔足够大时执行回调,同时提供参数控制防频繁点击次数和处理函数的使用。
摘要由CSDN通过智能技术生成

js节流函数 + 频繁点击处理

/**
 * @param {Function} fn 节流的事件函数
 * @param {Number} delay 延时一定时间
 * @param {Function} handleFn 频繁点击处理函数
 * @param {Number} frequency 一定时间内 点击几次 触发处理函数
 */
function throttle (fn, delay = 500, handleFn, frequency = 3) {
	let last = 0;	// 上一次点击时间
	let hits = 0;	// 点击次数
	return function (...args) {
		const now = Date.now();
		if (now - last > delay) {
			fn.apply(this, args);	// 和上一次点击时间差大于delay500ms, 才执行函数
			last = now;
			hits = 0;
		}
		hits++;
		if (hits == frequency && typeof(handleFn) === 'function') {
			handleFn.apply(this, args);
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值