在JavaScript中,可以使用防抖函数来限制连续触发事件的频率。当我们需要进行网络请求时,为了避免过多地向服务器发送请求,通常会将请求放入队列并设置一定的等待时间。如果在这段等待时间内再次触发相同的请求,则只有最后一次请求生效。
下面是一个示例的JS代码,展示了如何使用防抖函数来处理第二次请求弹窗的情况:
// 创建一个变量来保存上一次请求的时间戳
let lastRequestTime = null;
const debounceDelay = 500; // 设置防抖的延迟时间(单位:ms)
function requestData() {
const currentTime = Date.now();
if (lastRequestTime && currentTime - lastRequestTime < debounceDelay) {
alert("请不要重复提交!"); // 显示弹窗提示信息
return;
} else {
// 执行真正的请求操作...
// 更新上一次请求的时间戳
lastRequestTime = currentTime;
}
}
// 调用requestData函数来模拟点击按钮或其他触发条件
document.getElementById('myButton').addEventListener('click', requestData);
在上述代码中,debounceDelay
表示防抖的延迟时间,默认值为500毫秒。每次调用requestData()
函数都会获取当前时间戳与上一次请求的时间戳之间的差值,若小于指定的延迟时间,就会弹出提示信息;否则才会执行真正的请求操作,并更新上一次请求的时间戳。