繁体   English   中英

禁用AJAX请求直到完成?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM