Я получил 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();
});