关于性能优化之节流和防抖

1.节流

throttling(func, delay){
    
    
	//设置定时器开关
	let timer = null

	//返回节流函数
	return function(...args){
    
    
	//在节流期内再次触发,不会执行函数
		if(timer) return
		timer = setTimeout(() => {
    
    
			func.apply(this,...args)

		},delay)

	}

}

2.防抖

debounce(func, delay){
    
    
	//设置定时器开关
	let timer = null

	//返回防抖函数
	return function(...args){
    
    
	//在防抖期内再次触发,重新计时
		if(timer) clearTimeout(timer)

		timer = setTimeout(() => {
    
    
			func.apply(this,...args)

		},delay)

	}

}

猜你喜欢

转载自blog.csdn.net/qq_39748940/article/details/108195211