2013-08-07 2 views
1

У меня есть приложение javascript, которое получает данные из нескольких запросов jsonp. Когда все данные будут возвращены, страница будет обновлена ​​новыми данными. Ниже приведен псевдокод, но он структурирован для синхронной среды.Соберите несколько результатов JSONP

function GetAllData() { 

    var data1= GetData1(); 
    var data2= GetData2(); 
    var data3= GetData3(); 

    UpdatePage(data1,data2,data3); 
} 

Проблема у меня есть, что мне нужно собрать, и знать, когда все данные были возвращены из запросов JSONP, прежде чем обновить страницу. Я смотрел на jquery отложен, но я не уверен, что это правильное решение.

Любые предложения будут оценены.

ответ

1

Deferred - ваше правильное решение, когда вы используете JQuery.

function GetData1() { 
    return $.ajax("/foo", ...); 
} 

function GetData2() { 
    return $.ajax("/bar", ...); 
} 

function GetData3() { 
    return $.ajax("/baz", ...); 
} 

function UpdatePage(data1, data2, data3) { 
    ... 
} 

function Error() { 
    alert("An error occurred while fetching data"); 
} 

function GetAllData() { 
    $.when(GetData1(), GetData2(), GetData3()).then(UpdatePage, Error); 
} 
+0

Удивительный, это отлично работает! Спасибо, например, это было очень полезно. – Will

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