JQuery множественный вызов AJAX - PullRequest
0 голосов
/ 16 декабря 2010

Пожалуйста, используйте код ниже, Я уже установил оба ajax как async: false. Я обнаружил, что когда функция вызывает doUpdate2ndAJAX (), программа начинает выполнять $ (". Search"). Click (); хотя doUpdate2ndAJAX () еще не завершил выполнение.

Вкратце текущая ситуация: 1. doUpdate2ndAJAX () выполнить 2. doUpdate2ndAJAX () еще не закончен, начните выполнять $ (". Search"). Click () 3. doUpdate2ndAJAX () Завершить выполнение и ответить обратно

Могу ли я знать, как я могу сделать это как 1. doUpdate2ndAJAX () выполнить 2. doUpdate2ndAJAX () Завершить выполнение и ответить обратно 3. вызвать $ (". Search"). Click ();

[Выполнить в порядке следования]

Спасибо. -fsloke

firstCalled: function() {
             $.ajax({                          
            url: "XXX",
            async: false,
            success: function(response) {

                        doUpdate2ndAJAX();

                        $(".search").click();

                        }
           });
}               

function  doUpdate2ndAJAX(){
              $.ajax({                         
            url: "YYY",
            async: false,
            success: function(response) {
                            // UPDATE SOMETHING
                        }
               });
              return false;
}

Ответы [ 3 ]

1 голос
/ 27 июня 2012

Используйте отложенные объекты, это объекты для управления асинхронными вызовами, которые вы можете решить:

$.when($.ajax("/page1.php"), $.ajax("/page2.php"))
  .then(myFunc, myFailure);

Таким образом, myFunc выполняется после двух вызовов ajax и myFailure, если любой из них имеет ошибку.

Подробнее об этом можно прочитать в официальной документации jquery: JQuery Deferred Object

0 голосов
/ 16 декабря 2010

Я предлагаю использовать "полный" обратный вызов для вызова $ (". Search"). Click ().

Вы можете увидеть разницу между успешным и полным обратным вызовом здесь: http://api.jquery.com/jQuery.ajax/

0 голосов
/ 16 декабря 2010

Вы должны сделать вызовы AJAX асинхронными и вызвать $(".search").click(); в обратном вызове success для второго запроса.

В зависимости от вашей структуры, вы можете добавить параметр к doUpdate2ndAJAX, который указывает, следует ли вызывать $(".search").click();.
Кроме того, вы можете добавить параметр обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...