2011-11-05 91 views
3

我jQuery中看到的代碼:Double ajax函數?

var jqxhr = $.ajax("example.php") 
    .done(function() { alert("success"); }) 
    .fail(function() { alert("error"); }) 
    .always(function() { alert("complete"); }); 

但每個AJAX調用也有一回調功能例如:

jQuery.ajax({ 
     ... 
     beforeSend: function(xhr) 
     { 

     }, 
     success: function (data, textStatus, jqXHR) 
     { 

     }, 
     error: function(jqXHR, error_textStatus, errorThrown) 
     { 

     }, 
     complete: function (jqXHR, complete_textStatus) 
     { 
     } 
}); 

那麼有什麼區別?

回答

1

成功,錯誤等在內部使用調用$ .ajax(..)時構造的延遲對象實現。所以如果你只是簡單地調用.done,.fail等方法,你會得到相同的行爲。

使用延遲對象的優點是它具有一些您可能想要使用的附加功能。作爲一個例子,您可以執行多個異步ajax調用,當它們全部完成時繼續進行一些需要完成所有調用的工作。非常漂亮的tbh。 :)

@Matt球:沒有必要對此粗魯。然而,這些確實是你應該查找的鏈接,Royi。他們會告訴你你需要知道什麼。

+0

可以請你給你的答案樣本? –

+0

一個示例顯示如何對這樣的呼叫進行分組,並在所有事情完成時獲得延續或更基本的功能?在我看來,你真的擁有所有的作品...... – Mithon