防抖函数

17次阅读

共计 453 个字符,预计需要花费 2 分钟才能阅读完成。

概念解读:
在频繁触发的情况下,只有足够的空闲时间,才执行代码一次。生活例子:坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。
应用场景:
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));

正文完
 0