概念解读:
在频繁触发的情况下,只有足够的空闲时间,才执行代码一次。
生活例子:坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。
应用场景:
1、搜索输入框(监听keyup和keydown事件,请求次数过于平凡会增加服务器压力。可以让用户1s内不在输入内容,才向服务器发起请求。)
2、window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次
函数方法
function debounce(func, wait) {
let timeout = null
return function() {
clearTimeout(timeout)
timeout = setTimeout(() => {
func.apply(this, arguments)
}, wait)
}
}
//调用
function getData() {
... // ajax
}
documentElement.addEventListener('keyup', debounce(getData, 1000));
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。