私はこのコードを持っています#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. jQueryのgetJSON()要求と何も私は、このJSONファイルを持っている
- 2. python複数のjson要求を1つのファイルにマージして保存する
- 3. このgetJsonコール
- 4. 複数の検索jsonコール
- 5. 複数のJSONファイルまたは1つのJSONファイル
- 6. 複数の要求
- 7. JSONデータを置く要求
- 8. Javascript複数のコールまたは1つの大きなコール
- 9. jquery $ .getJSONは未定義の変数JSONデータを返します
- 10. コール\のHttp \要求:: withStatus()
- 11. SQL複数の要求
- 12. PHP複数のポスト要求
- 13. 複数のNSXMLParserコール
- 14. 複数のJSONオブジェクトを1つの.jsonファイルに書き込む
- 15. OkHttp3複数の要求タグ
- 16. ソケットはここで、複数の要求
- 17. 1つのエフェクトと複数のアクションによる複数のHTTP要求
- 18. getJSONコールは1回だけ起動しますか?
- 19. 1つのASP.net要求の複数のコア
- 20. $ .getJSONは未定義を返し、要求されたデータを返します
- 21. 複数の認証ハンドラを追加してコールを要求する
- 22. 複数のクライアント要求を1つのターミナルインタフェースで処理する
- 23. ReactJS:1回のPOSTコールでJSONデータとPDFファイルを送信できません
- 24. 複数のJSONファイルを1つのRubyファイルにマージする
- 25. XMLデータの複数の要求に対するfile_put_contents
- 26. jQueryのJSONパース - getjson
- 27. 1つのJSONファイルに複数の「要素」をjqで処理する
- 28. ネストされたgetJSONコール
- 29. 複数のコール
- 30. RailsのJSON要求
'daataUrls'は未定義のようです。 – Utkanos
はい、私は達成したいことを他人に理解させるためのプレースホルダーです –