防抖和节流,提高性能

3 篇文章 0 订阅
2 篇文章 0 订阅

防抖、节流,性能优化

1、防抖

防抖就是防止抖动,当持续触发事件的时候,会合并事件而不会立即触发,在一定时间内不再触发那个事件的时候才会真正去触发事件

function debounce(fn, delay, ...rest) { 
	let timer;
	return function () {
		let that = this;
		if (timer) {
			clearTimeout(timer);
		}
		timer = setTimeout(() => {
			fn.apply(that, rest)
		}, delay)
	}
}

2. 节流

节流就是持续触发某个事件,保证在一定的时间间隔内只触发一次

function throttle(fn, delay, ...rest) {
	let timer;
	return function () {
		let that = this;
		if (!timer) {
			timer = setTimeout(() => {
				timer = null;
				fn.apply(that, rest)
			}, delay)
		}
	}
}

防抖就是持续触发的时候,只触发一次事件,比如窗口的resize方法;节流就是在一定的时间间隔中只触发一次,比如表单输入控件的input事件

参考来源:

https://juejin.im/post/5b7b88d46fb9a019e9767405?utm_medium=fe&utm_source=weixinqun#heading-6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值