防抖(debounce)
函数防抖(debounce):就是让某个函数在上一次执行之后,满足等待某个时间内不再触发此函数后再执行,而在这个等待时间内再次触发函数,等待时间可以重新计算,直到该函数在一定间隔内没有被调用时,才开始执行被调用方法(所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。)
应用场景window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次
节流(throttle)
函数节流(throttle):是让一个函数无法在很短的时间间隔内连续调用,当上一次执行完之后过了规定的时间间隔,才能进行下一次的函数调用。(所谓节流,就是指连续触发事件但是在N秒中只执行一次函数)节流会稀释函数的执行频率。 即每间隔某个事件去执行某个函数,避免函数的过多执行,这个方式就叫函数节流
应用场景
手机获取验证码
总结
相同点
防抖和节流的目的都是为了减少不必要的计算,不浪费资源,只在适合的时候再进行触发计算
不同点
防抖是将多次执行变为只执行一次,节流是将多次执行变为每隔一段时间执行