Последовательные запросы AJAX - PullRequest
1 голос
/ 26 октября 2010

У меня есть ситуация, когда мне нужно делать последовательные запросы AJAX, представленные упорядоченным списком (<ol><li>..) на странице. Я использую jQuery.

Требования:

  1. Каждый запрос должен ждать завершения предыдущего запроса с успешным статусом.
  2. Сообщение об успехе или ошибке необходимо добавить к соответствующему элементу списка.
  3. Процесс должен быть остановлен в случае возникновения ошибки в каком-либо элементе.
  4. Ошибки могут быть ошибками HTTP или ошибкой, возвращенной в ответе в формате JSON.

Что у меня работает:

  1. Цикл по списку
  2. Выполнение $.getJSON вызова нужного URL для каждого элемента списка

Предметы «Требования» - это штуки, которые я не разработал.


РЕШЕНИЕ

В итоге я использовал jQuery Message Queuing , но я не нашел способа вернуть HTTP-ошибки элементу, который породил запрос. Вместо этого я отображаю ошибку в другом месте.

$(document).ajaxError(function(event, response, settings, exception){
    $('#Admin').append('<p class="error">' + response.status + ' error requesting page:<br />' + settings.url + '<br />Reload this page to continue.</p>');
});

Я бы предпочел отображать ошибки HTTP с элементом, если кто-то может помочь мне с этим.

Ответы [ 2 ]

1 голос
/ 26 октября 2010

Возможны два пути: -

  • Использование jQuery.ajaxQueue Плагин. Этот плагин поможет вам управлять "условиями гонки Ajax".
  • Использование синхронного вызова jQuery.ajax (нажмите на вкладку «Параметры», чтобы увидеть их). Чтобы сделать вызов синхронным, вы установите для параметра «async» в вызове Ajax значение false. Но это замедлит ход событий.

Надеюсь, это поможет.

1 голос
/ 26 октября 2010

jQuery Message Queuing - это то, что вы можете искать.Он выполняет последовательные (последовательные) запросы AJAX.

Здесь вы можете посмотреть демонстрацию .

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