设置一个门槛值,表示两次 Ajax 通信的最小间隔时间。如果在间隔时间内,发生新的keydown事件,则不触发 Ajax 通信,并且重新开始计时。如果过了指定时间,没有发生新的keydown事件,再将数据发送出去。
这种做法叫做 debounce(防抖动)。假定两次 Ajax 通信的间隔不得小于2500毫秒。
var timer = null; // 声明计时器
function debounce(fn, delay){
console.log("timer:", timer)
// 清除定时器
clearTimeout(timer);
// 新的定时器值
timer = setTimeout(fn, delay);
}
function getBaidu() {
console.log("按钮被点击")
debounce(function () {
console.log("发送网络请求")
}, 2500)
}
参考来源:https://wangdoc.com/javascript/async/timer.html
版权声明:本文为Echo_width原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。