检测特定的jQuery.get()是否正在进行中?

时间:2014-08-21 11:36:21

标签: jquery ajax ajax-request

如何检测特定的ajax请求是否正在进行中,我可以使用done并且无法检测它何时完成并且失败,但有没有办法找到它是否正在进行中?

var prog = false;
var ajxReq = $.get(url, function (response) {
    // insert response into container
})
.done (function () { prog = false; })
.fail (function () { });

var prog1 = false;
var ajxReq1 = $.get(url, function (response) {
    // insert response into container
})
.done (function () { prog1 = false; })
.fail (function () { });

如果ajxReq正在进行中,我想将prog变量值更改为true,如果ajxReq1正在进行中,我想将prog1变量值更改为true

优素福

1 个答案:

答案 0 :(得分:1)

如果您正在为所有应用程序的ajax寻找内容,那么您可以随时使用ajaxStartajaxStop

var isAjaxRunning = false;

$(document).ajaxStart(function() {
     isAjaxRunning = true;
});

$(document).ajaxStop(function() {
      isAjaxRunning = false;
});

http://api.jquery.com/ajaxstart/
http://api.jquery.com/ajaxstop/

否则只需做这样的事情:

var prog = false;
var ajxReq = $.get(url, function (response) {
    prog = true; 
    // insert response into container
})
.done (function () { prog = false; })