我正在使用一个稍微修改过的 jQuery 自动完成插件,
它只是简单地更改为从 MySQL 数据库获取 JSON 对象而不是某个数组。
但是,我注意到单击输入字段后,它会发送一个新请求,与之前的请求相同。 如果我再次单击另一个,许多快速单击很快就会开始形成一个可怕的问题...没有什么可以阻止它每秒发送无限量的请求。
所以,因为我将请求发送到特定的地方,并且该地方不应该两次处理相同的请求, 如果输入字段包含与上次请求相同的字符串,如何阻止它发送新请求?
这就是我从哪里获得修改后的插件:
http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
最佳答案
您需要放入一个互斥信号量,只是一个知道请求是否正在主动进行的标志,这样您就不会触发新请求,而是检查是否存在事件请求,只有在没有事件请求时才继续。
var inProgress = false;
$('selector').click(function() {
if (!inProgress) {
inProgress = true;
ajaxRoutine();
}
});
function ajaxRoutine() {
...
inProgress = false;
return;
}
关于javascript - 禁用 AJAX 请求直到完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542613/