1. 防抖函数(debounce)
功能:当事件被触发N秒之后再执行回调,如果在N秒内被触发,则重新计时。
比如一个输入框,当应用实现防抖函数之后,用户不断输入内容时,函数会一直被触发,则不会发送请求。只有当用户在一段规定时间N内未进行输入操作,才会发送一次请求。如果在N秒内间断的输入内容,且间断的时间小于规定时间N时,则会重新计时且不会发送请求。
这样降低了发送请求的次数,提高性能的同时也提升了用户体验。
手写实现防抖函数:
// func是用户传入需要防抖的函数
// wait是等待时间,若不传参,默认50ms
// 因为闭包,timer将一直在内存中
const debounce = (func, wait = 50)