ホームページ > 記事 > ウェブフロントエンド > AJAX 関数の戻り値が空になるのはなぜですか?
AJAX 関数の返されない変数の謎
Web アプリケーションの領域では、機能を強化するために JavaScript コードを別のファイルにモジュール化するのが一般的です。組織性と保守性。ただし、この移行により、AJAX 関数から返されたときに変数が消えたように見えるなど、謎の問題が発生する可能性があります。
問題:
フレームワークを複数のファイルに分割した後、開発者はAJAX 関数から返された変数が空のままになるという問題が発生します。 JS ファイルにデータが存在するにもかかわらず、実行時にデータが返されません。調査中のコード:
function get_data(data, destination) { ... if (data) { return data; } }
var test = get_data(data, destination);
原因:
AJAX 呼び出しの非同期性が原因です。 AJAX 呼び出しはバックグラウンドで実行されます。つまり、コードは応答を待たずに実行を続けます。その結果、AJAX 呼び出しが完了する前に get_data 関数が戻り、空のテスト変数が生成されます。
解決策:
この問題を解決するには、コールバックを使用する必要があります。 AJAX 応答を処理する関数。 AJAX 呼び出しが完了するとコールバック関数が呼び出され、返されたデータにアクセスできるようになります。
function get_data(data, destination, callback) { ... if (data && callback) { callback(data); } }
get_data(data, destination, function(test) { notice(test); });
以上がAJAX 関数の戻り値が空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。