”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 何时将成功回调函数与 jQuery Ajax 调用分离?

何时将成功回调函数与 jQuery Ajax 调用分离?

发布于2024-11-03
浏览:878

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 应用程序中的异步操作并提高灵活性。

版本声明 本文转载于:1729250296如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3