最近在加强 JavaScript 基础的学习,这里整理一下函数的防抖(debounce)和节流(throttle)。
类型 | 概念 | 应用 |
---|---|---|
防抖 | 触发事件后在 n 秒内函数只能执行一次并添加计时器,如果在 n 秒内又触发了事件,则会重新重置计时器 | input 的输入建议等 |
节流 | n 秒内触发事件仅执行一次函数 | 大段输入内容时记录输入历史 |
¶一、防抖 - debounce
非立即执行版:触发事件后函数不会立即执行,而是在 n 秒后执行,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
立即执行版:触发事件后函数会立即执行,然后 n 秒内不触发事件才能继续执行函数的效果。
1 | /** |
¶二、节流 - throttle
1 | /** |
¶参考资料
1、函数防抖和节流
2、JavaScript专题之跟着 underscore 学防抖
3、JavaScript专题之跟着 underscore 学节流