以下是一个示例代码,展示了如何在不同输入框上的按键弹起时进行带有超时的Ajax调用:
HTML部分:
JavaScript部分:
let timeoutId; // 定义一个超时ID
function makeAjaxRequest(value) {
clearTimeout(timeoutId); // 清除之前的超时
timeoutId = setTimeout(() => {
// 发起Ajax请求
let xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com?value=" + value, true);
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// 请求成功
console.log(xhr.responseText);
}
};
xhr.send();
}, 500); // 设置超时时间为500毫秒
}
这个示例代码中,我们定义了一个超时ID timeoutId
,每当输入框的按键弹起时,我们清除之前的超时,并设置一个新的超时,以确保在用户连续输入时只执行一次Ajax请求。超时时间设置为500毫秒,也就是用户停止输入500毫秒后才会发起Ajax请求。
当用户连续输入时,超时会被不断清除和重设,直到用户停止输入500毫秒后才会触发Ajax请求。这样可以避免频繁的Ajax请求,并减轻服务器的负担。
下一篇:不同输入形状的神经网络