ホームページ  >  記事  >  ウェブフロントエンド  >  成功コールバック関数を jQuery Ajax 呼び出しから切り離すのはどのような場合ですか?

成功コールバック関数を jQuery Ajax 呼び出しから切り離すのはどのような場合ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 19:18:29711ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。