防抖和节流

前端性能优化———防抖和节流

函数防抖(类似于setTimeout)

概念:函数防抖(debounce),就是指触发事件后,在n秒内函数只能执行一次,如果触发事件后在n秒内又触发了事件,则会重新计算函数延执行时间。




	
	防抖函数debounce



	
	


函数节流(类似于setInterval)

概念:每隔一段时间执行一次




	
	函数节流throttle


	
	


教程地址:https://www.bilibili.com/video/BV1a4411q7Jx/?spm_id_from=trigger_reload

关于定时器的疑惑
js默认机制,如果在定时器还没有执行完的时候,再次去调用定时器执行的话,第二次调用的方法,定时器就会覆盖掉前一次的定时器。
在每次进入function中,都会调用setTimeout,但是不清理定时器,就调用了多次定时器。
你每点击一次,就会产生一个定时器,而这些定时器是独立运行的,但是他们做的事情却又都是一件事,也就是说同时几个定时器都在做一件事,类似于多线程那种。当一个人做一件事,和很多人同时做一件事,那后者就会让你感觉怎么那么快了。
参考地址:https://q.cnblogs.com/q/97298/

你可能感兴趣的:(防抖和节流)