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