2011-04-08 53 views
3

使用jQuery实现Ajax请求队列的最佳方式是什么?具体而言,我想完成以下任务:如何使用jQuery实现ajax请求队列

  • 用户触发任意数量的网页中的Ajax请求,这需要进行排队,依次提交的。

  • 网页需要接收来自服务器的响应并相应地进行调整。最后,如果发生错误(连接丢失,服务器无法响应等),我希望jQuery调用JavaScript函数。

由于jQuery的Ajax函数中的错误处理机制不是非常直观,所以我特别努力解决最后的需求。有任何示例/教程可以帮助我完成此任务吗?

谢谢!

+0

你可能会喜欢这样的:http://www.erichynds.com/jquery/using-deferreds-in-jquery/ – 2011-04-08 21:54:42

回答

2

我已经做了几个像这样的缓冲区。一些例子可以发现simple task Bufferdeferred item queue

至于错误处理,你可以随时使用.ajaxError

+0

谢谢,这些看起来很有希望! – 2011-04-08 22:00:57

+0

@Jen如果您使用服务器上的节点,请考虑使用socket.io或现在;) – Raynos 2011-04-08 22:16:17

1

jQuery ajax有一个错误属性,您可以在其中附加一个函数,并且该方法只会在发生错误时触发。看下面的例子:

jQuery.ajax({ 
      type: "POST", 
      url: "url", 
      dataType:"json", 
      data:{}, 
      success:function(data){      
       alert("Succeed!"); 
      }, 
      error:function (xhr, ajaxOptions, thrownError){ 
       alert(xhr.status); 
       alert(thrownError); 
      }  
     }); 

我希望你觉得这有帮助。

+1

谢谢!我以前试过这些错误处理程序,但发现它们的行为相当不可预测。即使连接丢失,我也会得到*成功*指示... – 2011-04-08 21:59:51