2016-10-14 4 views
0

HTML: -Вызов функции является JQuery после всех Ajax вызовов (количество Ajax вызовов динамичны) получили ответы

Результат

Javascript: -

$(document).ready(function(){ 
$("#result").html("function started here"); 
var requests = Array(); 
requests.push($.get('https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA')); 
requests.push($.get('https://maps.googleapis.com/maps/api/geocode/json?address=EGL, Bangalore')); 
var defer = $.when.apply($, requests); 
    console.log(defer); 
defer.done(function(){ 
$("#result").html("Completed"); 
    // This is executed only after every ajax request has been completed 
    $.each(arguments, function(index, responseData){ 

    // alert(index); 
    $("#result").html(responseData); 
        // "responseData" will contain an array of response information for each specific request 
    }); 

}); 
    }); 

выше фрагмент кода работает только тогда, когда все ajax calls возвращает ответ «success». Есть ли способ, которым я могу знать, получает ли все вызовы ajax ответ, может быть, это «успех»/«сбой».

ответ

0

вы можете ajaxStart, ajaxStop, ajaxError, ajaxSuccess.

$(document).ajaxStart(function() { 
      //when ajax start 
     }).ajaxStop(function() { 
      //when ajax stop 
     }).ajaxError(function() { 
      //when ajax error 
     }).ajaxSuccess(function() { 
     // when ajax success 
    }); 

Это будет активироваться для каждого вызова ajax.

+0

Спасибо venkat :-) Это помогло. –

+0

есть ли способ узнать, какие вызовы ajax не удались, а какие ajax - успешные? –

+0

no .. (ajaxStart, ajaxStop, ajaxError, ajaxSuccess.) Эти функции запускаются глобально. Существует один способ, отслеживание с помощью значения retrun. – RJV

Смежные вопросы