springboot实战电商项目mall4j (https://gitee.com/gz-yami/mall4j)
函数防抖(debounce): 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时
**函数节流(throttle): **规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。
对于函数防抖,有以下几种应用场景:
总的来说,适合多次事件一次响应的情况
对于函数节流,有如下几个场景:
总的来说,适合大量事件按时间做平均分配触发。
函数防抖
function debounce (fn, wait) { let timer return (...args) => { clearTimeout(timer) timer = setTimeout(() => { fn(...args) }, wait) }
函数节流
function throttle (fn, wait) { let timer return (...args) => { if (timer) { return } timer = setTimeout(() => { fn(...args) timer = null }, wait) }
clearTimeout
timer=timeout; timer=null
springboot实战电商项目mall4j (https://gitee.com/gz-yami/mall4j)