私はこのコードを持っています#viewWと#viewW)は私のページにありますか?コール複数のJSONデータ/ 1 getJson要求のファイルは
答えて
最良の方法は、個別に各いずれかを実行すると、エラー条件を処理することです:
リクエストが並行して起こることを可能にする、できるだけ早く各要求が完了したときにページを更新$.getJSON(graphicDataUrl)
.then(function(data) {
// ...worked, put it in #view-graphic
})
.fail(function() {
// ...didn't work, handle it
});
$.getJSON(webDataUrl, function(data) {
.then(function(data) {
// ...worked, put it in #view-web
})
.fail(function() {
// ...didn't work, handle it
});
。
あなたが並行して要求を実行したいが場合、彼らは完全両方、あなたは$.when
であることを行うことができますまで、ページを更新するを待つ:
var graphicData, webData;
$.when(
$.getJSON(graphicDataUrl, function(data) {
graphicData = data;
}),
$.getJSON(webDataUrl, function(data) {
webData = data;
})
).then(function() {
if (graphicData) {
// Worked, put graphicData in #view-graphic
}
else {
// Request for graphic data didn't work, handle it
}
if (webData) {
// Worked, put webData in #view-web
}
else {
// Request for web data didn't work, handle it
}
});
を...しかし、ページが見えるかもしれません最初のリクエストが戻ったときに更新していないため応答が遅くなりますが、両方の場合にのみ更新されます。
ありがとう!それはまさに私が探していたものです。私は今それを試してみてください:) –
はだから今私がこれを書いた: '$ .getJSON(graphicDataUrl、機能(データ){ \t $に.get(templateHtml、機能(テンプレート){ \t \tテンプレート= Handlebars.compile(テンプレート) ; \t \t VAR例=テンプレート({作品:データ}); \t \t \t \t viewG.html(例えば); \t}); })。 $ .getJSON(webDataUrl、関数(データ){ \t $に.get(templateHtml、関数(テンプレート){ \t \tテンプレート= Handlebars.compile(テンプレート); \t \t VAR例=テンプレート({動作:データを} ); \t \t \t \t viewW.html(例); \t}); }); '多くのリピートコードがあります。また、私はエラーを処理せずにそれを行うことができますか? (リプレイとしてコードを書き込むには良い方法はない?) –
@GiorgiaSambrotta:もちろん良い方法がある。 :-)それを関数にカプセル化することができます。なぜ、テンプレートを保持して再利用するのではなく、 'templateHtml'からテンプレートを再取得していますか? (その部分は両者の間で全く変わっていないようだ。) –
これは、—に出会う可能性のある他の人にとって有益であり、jQueryのPromiseの進歩のおかげで— T.J.全負荷—を待っている間、ユーザー—に任意のフィードバックを与えない程度のポイントが良いものですが
/**
* Load multiple JSON files.
*
* Example usage:
*
* jQuery.getMultipleJSON('file1.json', 'file2.json')
* .fail(function(jqxhr, textStatus, error){})
* .done(function(file1, file2){})
* ;
*/
jQuery.getMultipleJSON = function(){
return jQuery.when.apply(jQuery, jQuery.map(arguments, function(jsonfile){
return jQuery.getJSON(jsonfile);
})).then(function(){
var def = jQuery.Deferred();
return def.resolve.apply(def, jQuery.map(arguments, function(response){
return response[0];
}));
});
};
:クラウダーの答えは今1つの簡潔で一般的な機能に改善することができます。応答性の高いフィードバックを好む人にとっては、進捗状況をサポートする少し複雑なバージョンがあります。
/**
* Load multiple json files, with progress.
*
* Example usage:
*
* jQuery.getMultipleJSON('file1.json', 'file2.json')
* .progress(function(percent, count, total){})
* .fail(function(jqxhr, textStatus, error){})
* .done(function(file1, file2){})
* ;
*/
jQuery.getMultipleJSON = function(){
var
num = 0,
def = jQuery.Deferred(),
map = jQuery.map(arguments, function(jsonfile){
return jQuery.getJSON(jsonfile).then(function(){
def.notify(1/map.length * ++num, num, map.length);
return arguments;
});
})
;
jQuery.when.apply(jQuery, map)
.fail(function(){ def.rejectWith(def, arguments); })
.done(function(){
def.resolveWith(def, jQuery.map(arguments, function(response){
return response[0];
}));
})
;
return def;
};
- 1. このgetJsonコール
- 2. jquery $ .getJSONは未定義の変数JSONデータを返します
- 3. SQL複数の要求
- 4. 複数のNSXMLParserコール
- 5. ソケットはここで、複数の要求
- 6. 1つのASP.net要求の複数のコア
- 7. getJSONコールは1回だけ起動しますか?
- 8. .getJSON .each()JSONデータを解析しない
- 9. YUI Loaderはjavascriptファイルを複数回要求しますか?
- 10. JSONデータと複数のシリーズのハイチャート
- 11. JSONデータphpFoxからajaxコール?
- 12. 複数のGetBetweenコール
- 13. 複数のglPrimitiveRestartIndexコール
- 14. クラスでPHPファイルを複数回要求する方法は?
- 15. http取得要求の複数のパラメータ
- 16. サーブレット制御の複数の要求
- 17. Facebookの "要求ダイアログ" - 複数のユーザー
- 18. $ .getJSONの1つ以上の変数
- 19. 1つのドメインモデル、複数のjsonビュー
- 20. は、両方のJSON要求が
- 21. HTTP不正な要求複数のエンドポイント
- 22. WCFデザイン - 1つの要求および応答オブジェクトまたは複数
- 23. jsonのgetJSON経由のJson RPCリクエスト
- 24. Excel:1つのデータ要素を取り込む複数のVlookups
- 25. 1つの接続要求で複数のDBからデータを取得することが可能です
- 26. 複数コール、cURL
- 27. 1つのファイルから複数のOracle表にデータをインポート
- 28. django ajaxコール返信403悪い要求
- 29. JQuery複数のAJAXコール
- 30. PHP - 複数のファイルと1つのファイル
'daataUrls'は未定義のようです。 – Utkanos
はい、私は達成したいことを他人に理解させるためのプレースホルダーです –