«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Когда следует отделять функции обратного вызова успеха от вызовов Ajax jQuery?

Когда следует отделять функции обратного вызова успеха от вызовов Ajax jQuery?

Опубликовано 3 ноября 2024 г.
Просматривать:397

When to Decouple Success Callback Functions from jQuery Ajax Calls?

Отделение функций обратного вызова успеха от вызовов Ajax jQuery

При получении данных с сервера с использованием 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