2011-04-08 82 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