首頁 > web前端 > js教程 > 主體

何時將成功回呼函數與 jQuery Ajax 呼叫分離?

Mary-Kate Olsen
發布: 2024-10-18 19:18:29
原創
709 人瀏覽過

When to Decouple Success Callback Functions from jQuery Ajax Calls?

從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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!