フレックステーブルを使用して、dbからフェッチされたデータを表示します。テーブルに大量の列が含まれている場合、フレックステーブルのレンダリングに時間がかかり(80列38行のテーブルでテストしました)、完全にレンダリングされていない間は、ページで何もできません。だから私は次のように使用Schedule.get().scheduleIncremental(ReapitingCommand command)します:
final int WORK_CHUNK = 2;
Scheduler.get().scheduleIncremental(new RepeatingCommand() {
int rowCounter = 0;
@Override
public boolean execute() {
for (int i = rowCounter; i < rowCount; i++, rowCounter++) {
for (int j = 0; j < columnCount; j++) {
table.setText(i, j, data.get(i)[j]);
}
if (rowCounter % WORK_CHUNK == 0)
return true;
}
return false;
}
});
しかし、dataオブジェクトに9行3列ある場合、レンダリングされるのは2行だけです。前に述べたように、38行80列の場合、。なしですべてのデータをレンダリングするには時間がかかりすぎるため、パフォーマンスを向上させる方法scheduleIncremental。ブラウザでさえ、スクリプトが応答を停止した可能性のあるウィンドウをポップアップします。