これらの関数は非同期 (非同期) で実行され、遅延して返されることはわかっているので、JS ローダーのcurljs のように、単一のコールバックを使用してそれらを並列にロードできる方法があるかどうか知りたいです。そうします。 幸運なことに、jQuery.when を使用すると、2 つのリクエストを同時にロードでき、コールバックは 1 回だけ実行できます。
jQuery スクリプト
前述したように、スクリプトと JSON リソースをロードするユースケースは次のとおりです:
$.when(
$.getScript('/media/js/wiki-min.js?build=21eb633'),
$ .getJSON(' https://developer.mozilla.org/en-US/demos/feeds/json/featured/')
).then(function(a, b) { // または、「」を使用することもできます.done"
// はい、読み込みが完了しました。ここで依存関係の操作をいくつか実行できます。
});
リソースの読み込みが完了すると、指定された Done または then コールバックがトリガーされるため、リクエストが完了したことがわかります。 各リクエストによって返されるコールバック パラメータ オブジェクトのタイプは異なるため、上記のリクエストは次の情報を返す場合があります:
// 形式: [response, state, jqxhr], [response, state, jqxhr]
["(function(c){var e=c(" .from-search-navigate" );if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "success", Object]
[配列[15], "成功", オブジェクト]
ウィジェット テンプレートなどの従来の AJAX XHR リクエストを追加する必要がある場合は、次のようにすることができます:
$.when(
$. getScript(' /media/js/wiki-min.js?build=21eb633')、
$.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/ '),
$.get('/')
).then(function(a, b, c) {
console.log(a, b, c);
});
Dojo Toolkit には長い間この種の機能がありましたが、jQuery でもそれができることに非常に興奮しています。 現在の開発では、同期されておらず、返される順序が不確実な複数のリクエストが同じコールバックを共有することが当然の要件であるため、jQuery は確実に時代とともに進歩しています。