防抖
一个比较形象的比喻就是电梯每进来一个人就要等10秒再运行。
防抖函数代码:
1 | function debounce(fn, delay) { |
比较常见的应用是 input 输入框添加防抖
节流
一个比较形象的比喻就是打穿越火线(cf)时,就算一直按着鼠标,也只能在规定射速内射出子弹。
节流代码:
1 | function throttle(fn, threshhold = 250, scope) { |
比较常见的应用是监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断
图片对比
参考
https://stackoverflow.com/questions/25991367/difference-between-throttling-and-debouncing-a-function
http://demo.nimius.net/debounce_throttle/