関心のある 2 つのモデル/プロキシ/ストアがQuestions
ありChoices
ます。どちらも REST サーバーからデータを JSON として取得します。私のプロセスは現在次のようになっています。
// load numQuestions records from store.Questions
var qs = Ext.getStore('Question');
//... loadmask, etc.
qs.load({
scope : this,
params : {
limit : numQuestions
},
callback : function() {
this.createQuestionCards(numQuestions);
}
});
を取得したら、次のようにそれぞれに関連するQuestions
をループしてフェッチします。Choices
Question
for ( i = 0; i < numQuestions; i++) {
// ... misc ...
Assessor.questionChoices[i] = qs.getAt(i).choices();
// ...misc...
},
これは、ループの反復ごとに XMLHTTPRequest を作成することを除けば、うまく機能します。0.15 秒領域の最小応答時間で、N < ~40 の場合は問題ありません。数が 200 に達すると (これは一般的な使用例です)、遅延は厄介なものになります。
ExtJS でリクエストを「バッチ処理」し、ループ本体の後に送信するにはどうすればよいですか? 例えば:
var choiceBatch = qs.createBatch();
for ( i = 0; i < numQuestions; i++) {
// ... misc ...
Assessor.questionChoices[i] = choiceBatch.getAt(i).choices();
// ...misc...
};
choiceBatch.execute();