私は、クライアント側のコードがサーバー側の応答とともにどのように処理されるかについて質問します。 実行時に、HTTPRequestオブジェクトを使用してサーバーサイドコードを実行する関数を呼び出し、その関数が呼び出されたページに文字列を戻すコードがあります。何らかの理由で、私はクライアント側のコードが処理されていると思いますが、文字列が返され(遅すぎます)、コードが原因で失敗しています。たとえば、私はHTTPRequestで関数を呼び出し、次の行では、返された値(HTTPRequestからの文字列)を警告に表示しようとします。警告は空白として表示されます。コードの後ろのほんの数行で、返された値と同じアラートが表示されます。ですから、基本的には、最初のクライアント側のアラートが処理されているため、まだ返されていない文字列が表示されますが、2番目のアラートは後で処理されます。要求された文字列を表示します。この理論は理にかなっていますか? HTTPRequestが完了したかどうかにかかわらず、クライアント側のコードは実行されますか?もしそうなら、サーバーからの応答が受信されるまでクライアント側のコードが実行されないようにする方法はありますか?AJAX、クライアントサイドJavaScriptはサーバーサイドJavaScriptより先に処理されますか?
0
A
答えて
1
HTTPリクエストは非同期です。つまり、あなたのコードはそれを送信し、実行し続けます。 XHR要求によって返されたデータを取得し、そのデータを何らかの方法で使用するコールバック関数を設定する必要があります。
0
あなたはとてもXMLHttpRequestオブジェクトのonreadystatechangeにイベントに匿名関数をバインドする必要があります。
//xhr is an instance of the XmlHTTPRequest object that you have opened correctly
xhr.onreadystatechange = function(){ //4 means the request was successful
if (xhr.readyState === 4){
//Your code here
}
}
0
あなたは、戻り値のご表示しようとしたコードのビット/行為は内であることを確認する必要がありますajaxルーチンのスコープ。これは、リクエストが完了するまで(成功したかどうかにかかわらず)レスポンスが実行されないことを保証する唯一の方法です。たとえば、あなたはjQueryのを使用している場合: CORRECT
jQuery.get('ajax/ajax.getSomeData.php',{id:id}, function(data) {
$('#myDIV').html(data);
});
INCORRECT
jQuery.get('ajax/ajax.getSomeData.php',{id:id}, function(data) {});
$('#myDIV').html(data);
関連する問題
- 1. クライアントサイドXSL処理のJavaScript?
- 2. クライアントサイドJavaScriptアプリケーションとサーバーサイドHTTP APIの間の認証?
- 3. javascriptによるフォーム処理
- 4. javascriptによる処理フォーム
- 5. 処理されたポストjavascript/ajax htmlを文字列にロードします。
- 6. クライアントサイドJavaScriptより前にRequiredFieldバリデータを表示するには?
- 7. ブラウザはどのようにJavaScriptを処理しますか?
- 8. Javascriptからサーバーサイドで作成されたCookieにアクセスする
- 9. サーバーサイドでロードされたJavaScriptコードを取得するには?
- 10. クライアントサイドのJavaScript mimetypeライブラリはありますか?
- 11. 処理された(処理されていない)Javascriptエラーをサーバーに送信
- 12. サーバーサイドのJavaScript拡張
- 13. JavaScriptコールバックエラー処理
- 14. javascriptの処理
- 15. javascriptイベント処理
- 16. Javascript:フォーム処理
- 17. javascriptイベント処理
- 18. Flash + JavaScriptによるクライアントサイドのジップ
- 19. JavaScriptのエクステンデッドライブラリからのイベントの優先処理
- 20. ajax経由でjavascriptを渡し、PHPで処理します
- 21. Javascriptが処理されていないようです。JSON api
- 22. Flaskからエラーメッセージを返し、AJAXリクエスト後にJavaScriptで処理しますか?
- 23. JavascriptによるクライアントサイドのUIレンダリングは良い考えですか?
- 24. サーバーサイドJavaScriptのクリーンアップまたはサンドボックス?
- 25. JavaScriptによるイベント処理のベストプラクティス
- 26. サーバーサイドの処理データテーブルはどのように作成できますか?
- 27. divコンテンツを.txtまたはjavascriptクライアントサイド
- 28. IEとクライアントサイドのイベント処理におけるホストされたユーザーコントロール
- 29. javascript observableエラー処理
- 30. javascriptのイベント処理
[非同期/同期のJavascript]の可能複製(http://stackoverflow.com/questions/6748287/asynchronous-synchronous-javascript) – user123444555621
はい、デフォルトでは非同期で、コードは引き続き実行されます。 – Zachary
async = falseをリクエストしない場合は、JSはシングルスレッドで、サイト全体がロックされます。 – marteljn