前端面试题(22)—— 什么是防抖和节流?有什么区别?如何实现?
什么是防抖和节流?
- 防抖(debounce):当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的事件到来之前,又一次触发了事件,就重新开始延时。(简单概括:每次触发时都会取消之前的延时调用。)
- 节流(thorttle):当持续触发事件时,保证一定时间段内只调用一个事件处理函数。(简单概括:每次触发事件时都会判断是否等待执行的延时函数。)
区别:降低回调执行频率,节省计算资源。
- 防抖和节流本质是不一样的,防抖是将多次执行变为最后一次执行,节流是将多次执行变成每隔一段时间执行。
- 函数防抖一定连续触发的事件,只在最后执行一次,而函数节流一段时间内只执行一次。
实现:
见以下文章: https://www.csdn.net/tags/NtTakg2sNzI3MjItYmxvZwO0O0OO0O0O.html