2つの異なるXML要求からいくつかのデータを取得している場合、両方の要求が同時に行われると、どのようにして特定の作業を開始できますか?2つのXML要求の結果を同時に処理する方法
答えて
あなたが解決している問題は、非同期タスクを調整することです。コールバックでこれを実現できます。
各要求が完了すると、すべての出力が処理されるコールバック関数が実行されるようにします。ここで
は、コールバックです:
function allDone(){
if ! (completedRequests < totalRequests) return;
//If we get here, all calls are complete.
//Add code here to work on your retrieved XML data.
}
ここでは、XMLを取得カウンタをインクリメントし、allDone()
を呼び出す例です。
function requestXML(url) {
var dataToReturn;
$.ajax({
type: "GET",
url: "url",
cache: false,
dataType: "xml",
success: function(xml) {
dataToReturn=xml;
completedRequests += 1; //increment the count
allDone(); //call the callback
}
});
return dataToReturn;
}
var totalRequests=2; //There are going to be two requests, but we could easily extend this number.
var completedRequests=0; //here's the incrementing value
//Here are the two requests
var xml1=requestXML("xml_source1");
var xml2=requestXML("xml_source2");
allDone()
は「totalRequests」回と呼ばれます。最後のものを除くすべての呼び出しは `allDone()から直ちに戻ります。最後に呼び出されると、すべての要求が完了するとコードが実際に実行されます。
マイケルケイの優れた点をこの解決策でより明確にするために、この回答をリファクタリングしました。
ありがとうございます。 –
N個のリクエストがある場合は、アイデアを明らかな方法で拡張するだけです(例:カウンタをNに初期化し、タスクが終了するたびにデクリメントする。 –
もう一度ありがとうございます。 –
- 1. 2つの結果で同時に2つの検証を行う方法
- 2. PHPで検索結果ごとに2つのラジオボタンを処理する方法
- 3. 2つの同時接続/要求ロック
- 4. Aurelia:ビューで非同期要求を処理する方法は?
- 5. 2つの結果のSIGTERMを処理する
- 6. 検索時に2つの結果を許可する方法
- 7. 同時に2つのウェブサイトからログアウトする方法 - PHPセッション処理
- 8. ORMLite - 参加結果の処理方法
- 9. 要求ループの処理方法は?
- 10. 同時に複数の要求を処理するSOAPサーバー用のPythonライブラリ?
- 11. ES6での非同期要求処理
- 12. Nodejsはシングルスレッドですが、同じ同時要求を1秒間に処理する方法
- 13. RestAPIへのデータ要求時にインターネット接続を処理する方法
- 14. 2つの要素を同時にクリックする方法
- 15. オープン2つの結果セットを同時に
- 16. JavaScriptで非同期関数の結果を処理する方法
- 17. 複数のリクエストを同時に処理し、結果をKlein Module Pythonで返す
- 18. 異なるクライアントからの複数の同時要求を処理する方法は?
- 19. asp.netはどのように同時ユーザー要求を処理しますか?
- 20. 大量の保留中の要求を処理する方法
- 21. Djangoの要求変数を処理する最良の方法
- 22. HTTP要求ですべての結果を得る方法python
- 23. オフライン時に同期を要求する最善の方法
- 24. Laravel DBのクエリ結果を変数にキャッシュする同じSQLクエリを同時に処理する場合
- 25. 検索の結果を処理する方法
- 26. PropertySheetの結果を処理する方法は?
- 27. PHPでコントローラへのXMLhttp要求を処理する方法
- 28. node.jsのPOST要求を処理する方法
- 29. ノードの未処理要求を設定する方法
- 30. 2つのコマンドの結果を連結する方法R
あなたは私たちに何らかのコードを表示していませんが、私が示唆していることは約束を調べることです。 – Keith