[英]How to make sure a button is disabled until an ajax request is 100% finished
[英]Disable AJAX request until finished?
我正在使用经过稍微修改的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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.