ホームページ > ウェブフロントエンド > jsチュートリアル > Prototype.js で AJAX 応答テキストを適切に取得するにはどうすればよいですか?

Prototype.js で AJAX 応答テキストを適切に取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-18 10:58:10
オリジナル
415 人が閲覧しました

How Can I Properly Retrieve AJAX Response Text in Prototype.js?

AJAX 応答テキストの取得

プロトタイプを使用して AJAX を操作する場合、さらなる処理のために応答テキストを取得する方法を理解することが不可欠です。提供した元のコード:

somefunction: function(){
    var result = "";
    myAjax = new Ajax.Request(postUrl, {
        method: 'post',
        postBody: postData,
        contentType: 'application/x-www-form-urlencoded',
        onComplete: function(transport){
            if (200 == transport.status) {
                result = transport.responseText;
            }
        }
    });
    return result;
}
ログイン後にコピー

は、AJAX の非同期の性質により、目的の値を返さない可能性があります。より良いアプローチは次のとおりです。

コールバック関数の受け渡し

応答を直接返す代わりに、コールバック関数を somefunction() のパラメーターとして定義します。このコールバック関数は、AJAX リクエストが完了すると呼び出されます:

somefunction: function(callback){
    var result = "";
    myAjax = new Ajax.Request(postUrl, {
        method: 'post',
        postBody: postData,
        contentType: 'application/x-www-form-urlencoded',
        onComplete: function(transport){
            if (200 == transport.status) {
                result = transport.responseText;
                callback(result);
            }
        }
    });
}
ログイン後にコピー

別の関数では、somefunction() を呼び出して、応答テキストを処理するコールバックを提供できます:

somefunction(function(result){
  alert(result);
});
ログイン後にコピー

コールバック関数を使用すると、AJAX リクエストが完了したときに結果が確実に処理され、空の応答文字列の問題が排除されます。

以上がPrototype.js で AJAX 応答テキストを適切に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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