2010-10-26 177 views
1

我有一种情况,我需要在页面上按顺序列表(<ol><li>..)表示顺序AJAX请求。我使用jQuery。连续AJAX请求

要求:

  1. 每个请求必须等待前一个成功状态来完成。
  2. 成功或错误消息需要附加到相应的列表项。
  3. 如果任何项目发生错误,进程应停止。
  4. 错误可能是HTTP错误或JSON格式响应返回的错误。

我有什么工作:

  1. 循环执行列表
  2. 制作$.getJSON调用所需的URL列表的每个项目

的“需求”的项目是件我的避风港没有解决。


SOLUTION

我结束了使用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错误。

回答

1

jQuery Message Queuing是你可能正在寻找。它执行串行(顺序)AJAX请求。

您可以查看演示here

+0

看起来很有希望!现在检查出来。 – Sonny 2010-10-26 16:33:53

1

可以有可能有两种方式: -

  • 使用jQuery.ajaxQueue插件。这个插件将帮助你管理“Ajax竞争条件”。
  • 使用同步呼叫jQuery.ajax(单击“选项”(Options)选项卡查看它们)。要使调用同步,您需要将Ajax调用中的“async”选项设置为false。但是,它会减慢速度。

希望它有帮助。