Хороший шаблон для ожидания нескольких результатов AJAX? - PullRequest
3 голосов
/ 09 июля 2011

Я получил 2 ajax-запроса на одну из моих страниц, и мне нужно подождать, пока они загрузятся, прежде чем показывать данные пользователю. Каков наилучший способ управления этим?

Ajax-запросы отправляются из 2 отдельных классов, которые предоставляют метод MakeRequest (successCallback, failCallback), поскольку я уверен, что вы можете сказать, что соответствующий обратный вызов вызывается после завершения ajax.

Они оба вызываются в контроллере (используя knockoutjs), вот пример:

// Some JS File
function SomeController(ajaxService1, ajaxService2) {

    this.model = ...

    this.bothAjaxRequestsComplete = function() {
        ... Do something on view
    };

    this.invokeFirstAjax = function() {
        ajaxService1.MakeRequest(firstAjaxSuccess, firstAjaxFailed);
    };

    this.invokeSecondAjax = function() {
        ajaxService2.MakeRequest(secondAjaxSuccess, secondAjaxFailed);
    };

    var firstAjaxSuccess = function(data) {
        ... Do something on model
    };

    var secondAjaxSuccess = function(data) {
        ... Do something on model
    };

    var firstAjaxFailed = function(...) {...}
    var secondAjaxFailed = function(...) {...}
}

var someController = new SomeController();
$(document).ready(function(){
    someController.invokeFirstAjax();
    someController.invokeSecondAjax();
});

1 Ответ

3 голосов
/ 09 июля 2011

Я обнаружил, что использование «отложенных» работает довольно хорошо для такого рода вещей. Они позволяют легко определить список действий, которые должны быть выполнены, и обратный вызов / список обратных вызовов.

Я полагаю, что в jQuery 1.5

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