在前端開發中,我們經常要處理異步請求,其中一種常用的處理方式便是使用回調函數(Callback)。如果您使用的是jQuery 1.7.2以下的版本,那么您可能需要手動編寫回調函數。但如果您使用的是jQuery 1.7.2及以上版本,則可以使用$.Deferred對象和其提供的方法來處理回調函數。
// 以jQuery 1.7.2為例: $.ajax({ url: "/data", success: function(response) { // 處理響應數據 }, error: function(error) { // 處理錯誤信息 } });
上述代碼實現了一個異步請求,并在請求成功或失敗時分別調用success和error回調函數。但是,如果我們需要處理更多的回調函數,或者將它們組合在一起,就需要借助$.Deferred對象。
// 以組合回調函數為例: var getJSON = function(url) { var dfd = $.Deferred(); $.ajax({ url: url, dataType: "json", success: dfd.resolve, error: dfd.reject }); return dfd.promise(); }; $.when(getJSON("/data1"), getJSON("/data2")).then(function(data1, data2) { // 處理響應數據 }, function(error1, error2) { // 處理錯誤信息 });
上述代碼使用$.when方法將兩個getJSON請求組合在一起,并在兩個請求都成功時調用then方法中的回調函數處理響應數據。如果其中有一個或多個請求失敗,則調用then方法中的第二個回調函數處理錯誤信息。
總之,使用$.Deferred對象和其提供的方法,可以更方便地處理異步請求中的回調函數。
上一篇手機按鈕css樣式