引入

  1  在開發(fā)的過程中,我們經(jīng)常遇到某些耗時很長的javascript操作,并且伴隨著大量的異步。

  2  比如我們有一個ajax的操作,這個ajax從發(fā)出請求到接收響應(yīng)需要5秒,在這5秒內(nèi)我們可以運行其他代碼段,當(dāng)響應(yīng)到達(dá)后,我們需要判斷響應(yīng)的結(jié)果(無非就是成功或者失敗),并根據(jù)不同的結(jié)果  添加回調(diào)函數(shù)

  3  為了有效的簡潔的添加回調(diào)函數(shù)jQuery引入了Callbacks。

  4  而為了方便的 根據(jù)不同的結(jié)果(或者根據(jù)各種跟結(jié)果有關(guān)的邏輯,比如不管是成功或者失敗) 添加回調(diào)函數(shù),jQuery引入了Deferred。

 $.ajax("test.html")
  .done(function(){ alert("success"); })
  .fail(function(){ alert("error"); });

  5  因而Deferred與Callbacks是密不可分的,事實上,Callbacks也是從Deferred中分離出去的

網(wǎng)友評論