ホームページ > ウェブフロントエンド > jsチュートリアル > 非同期 AJAX 呼び出しの戻り値にアクセスするにはどうすればよいですか?

非同期 AJAX 呼び出しの戻り値にアクセスするにはどうすればよいですか?

DDD
リリース: 2024-11-25 08:20:10
オリジナル
548 人が閲覧しました

How Can I Access the Return Value of an Asynchronous AJAX Call?

非同期 AJAX 呼び出しと変数リターン

フレームワーク コードを個別のファイルに分割するコンテキストで、リターンがAJAX 経由で呼び出された関数の値にアクセスできませんでした。この混乱は、AJAX 呼び出しの非同期の性質に起因します。

AJAX 呼び出し: 非同期性の説明

AJAX (非同期 JavaScript および XML) 関数は非同期で動作します。これは、AJAX リクエストが行われたとき、リクエストを行った関数は、応答の完了を待たずに実行を続行することを意味します。これにより、AJAX リクエストの進行中に、プログラムの他の部分が並行して実行し続けることができます。

Function Return と AJAX

get_data 関数の場合、成功コールバック関数内の return ステートメントは、関数が呼び出されてもすぐには実行されません。代わりに、AJAX リクエストが完了し、レスポンスが受信された場合にのみ実行されます。

解決策: コールバックの使用

この問題を解決するには、以下を提供する必要があります。 get_data 関数へのコールバック関数。このコールバックは、AJAX リクエストが完了し、応答データが利用可能になったときに実行されます。変更されたコードは次のようになります:

function get_data(data, destination, callback) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function (data) {
        lock_get = 0;
        if (data && callback) {
          callback(data);
        }
      }
    });
  }
}
ログイン後にコピー

呼び出し側のコードはコールバック関数に渡すように変更されます:

get_data(data, destination, function (test) {
  notice(test);
});
ログイン後にコピー

このようにして、応答データは内部で処理できます。 AJAX リクエストが完了したときのコールバック関数。

以上が非同期 AJAX 呼び出しの戻り値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート