Как сделать синхронные вызовы JSONP ajax с помощью Jquery - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь получить информацию об учетной записи для нескольких учетных записей, преобразовывая данные XML в JSONP.Проблема в том, что все функции запускаются одновременно и результаты заполняются при поступлении запроса GET. Вот сокращенный код:

$(document).ready(function() {
    GetInfo("user1","pass2");
    GetInfo("user2","pass4");
    GetInfo("user3","pass6");
});

function GetInfo(login, passwd)
{
    login = escape(login);
    login = login.replace("+","%2b");

    passwd = escape(passwd);
    passwd = passwd.replace("+","%2b");

    var url = "...";
    var yql = 'https://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20xml%20where%20url=%27' + escape(url) + '%27&format=json&callback=cbfunc'

    $.ajax({
    type:"GET",
    dataType:"jsonp",
    url: yql,
    });
}

function cbfunc(data)
{
   $('#container').html(data.query.results);
}

Этот код возвращает user1, user2, user3 вслучайный порядок.В идеале я бы хотел, чтобы каждый вызов блокировался и завершался до того, как он перейдет к следующему вызову GetInfo.Я впервые работаю с JSONP, так что если есть какие-то уловки, которые мне не хватает, я был бы признателен за указатели.Спасибо

1 Ответ

1 голос
/ 18 октября 2011

Вы можете использовать очередь сообщений jquery.http://benalman.com/code/projects/jquery-message-queuing/docs/files/jquery-ba-jqmq-js.html

...