Как загрузить данные из 2 файлов JSON с помощью JQuery? - PullRequest
2 голосов
/ 22 апреля 2011

У меня есть два файла json, и я хочу сделать ajax-вызов для них обоих.

$.getJSON('http://www.example.com/contest_media', function(data) { do something });
$.getJSON('http://www.example.com/contest', function(data) { do something });

Я хочу, чтобы это стало чем-то вроде:

$.getJSON(['http://www.example.com/contest_media', 'http://www.example.com/contest'], function(data) { do something});

Я также использую $.each(data, function(i,item) {}, поэтому я не могу:

$.getJSON('http://www.example.com/contests', function(data) { 
$.each(data, function(i,item) {
    do something
    $.getJSON('http://www.example.com/contest_media', function(data) {do something });
}
});

Здесь contest_media не будет отслеживать contests.

Я в основном хочу использовать данные из обоих файлов json в одном и том же $.each. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 22 апреля 2011

Я считаю, что это можно сделать с помощью $.when.В вашем случае ваш код, вероятно, будет выглядеть примерно так ...

$.when(
    $.getJSON('http://www.example.com/contest_media'),
    $.getJSON('http://www.example.com/contest')
).done(function(contestMedia, contest) {

    // do something    
    // contestMedia = [ "success", statusText, jqXHR ]
    // contest = [ "success", statusText, jqXHR ]

    // response data can be gotten with contest[2].responseText

});

Страница документации jQuery за $ .when

Обратите внимание, что для этого требуется версия 1.5 jQuery.

0 голосов
/ 22 апреля 2011

Разве вы не можете просто вложить это? Я полагаю, что вам все равно нужно полагаться на данные обоих.

$.getJSON('http://example.com/contest_media', function(data) {
 // do basic stuff
 $.getJSON('http://example.com/contest', function(data) {
   // do more stuff now that you have both pieces of data
 });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...