從jQuery Ajax 呼叫解耦成功回調函數
使用jQuery ajax 從伺服器擷取資料時,通常的做法是定義成功.ajax () 區塊中的回呼函數。這將回調處理與 AJAX 呼叫緊密耦合,限制了靈活性和可重複使用性。
要在 .ajax() 區塊之外定義成功回調,通常需要宣告一個用於儲存回傳資料的變數。但是,建議使用延遲物件的更現代方法。
自 jQuery 1.5 以來,延遲物件提供了更好的方法來處理 AJAX 呼叫等非同步操作。以下是實現這一目標的方法:
function getData() { return $.ajax({ url : 'example.com', type: 'GET' }); } function handleData(data /* , textStatus, jqXHR */ ) { alert(data); //do some stuff } getData().done(handleData);
這種方法將回調處理與 AJAX 呼叫解耦,從而輕鬆實現多個回調、錯誤處理和非同步事件同步。
對於實例:
// Timer for demo purposes, resolves itself after 5 seconds var timer = $.Deferred(); setTimeout(timer.resolve, 5000); // Get data using AJAX and attach done and error handlers var ajax = getData().done(handleData).fail(error); // Wait for both AJAX and timer to finish before continuing $.when(timer, ajax).done(function() { // Both AJAX and 5s timer have finished }); // Additional callbacks can be added even after AJAX call finishes ajax.done(function(data) { //Do some stuff with data });
這展示了延遲物件的強大功能,可以更好地控制 jQuery 應用程式中的非同步操作並提高靈活性。
以上是何時將成功回呼函數與 jQuery Ajax 呼叫分離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!