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

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

Barbara Streisand
リリース: 2024-12-26 04:32:13
オリジナル
980 人が閲覧しました

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

非同期 JavaScript および XML (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;
}
ログイン後にコピー

このスニペットでは、「someFunction」が完了してからずっと後に、「onComplete」関数が非同期で実行されます。これにより、空の "result" 変数が生成されます。

これを克服するために、提供された回答で解決策が提案されています。つまり、パラメーターとして "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(function(result){
  alert(result);
});
ログイン後にコピー

この場合、「someFunction」はコールバックをパラメータとして受け取り、それを応答テキスト。この例では、コールバック関数は取得したテキストを含むアラートを表示します。このメカニズムにより、必要に応じて後続の関数で応答テキストを利用できるようになります。

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

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