gwt中的重复命令

gwt中的重复命令,gwt,flextable,Gwt,Flextable,我使用flex表来显示从数据库中获取的数据。当表包含大量列时,渲染flextable需要花费很多时间(我在包含80列和38行的表上测试了它),虽然它没有完全渲染,但我无法对页面执行任何操作。因此,我使用Schedule.get().scheduleIncremental(ReapitingCommand)如下所示: final int WORK_CHUNK = 2; Scheduler.get().scheduleIncremental(new RepeatingCommand() {

我使用flex表来显示从数据库中获取的数据。当表包含大量列时,渲染flextable需要花费很多时间(我在包含80列和38行的表上测试了它),虽然它没有完全渲染,但我无法对页面执行任何操作。因此,我使用
Schedule.get().scheduleIncremental(ReapitingCommand)
如下所示:

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;
            }
        });
final int WORK_CHUNK=2;
Scheduler.get().scheduleIncremental(新的RepeatingCommand()命令){
int rowCounter=0;
@凌驾
公共布尔执行(){
for(int i=rowCounter;i
但是,如果我在
data
object中有9行3列,它只渲染2行。 如何提高它的性能,因为正如我前面所说的,如果有38行80列,那么在没有
scheduleIncremental
的情况下渲染所有数据会花费太多时间。甚至浏览器也会弹出脚本可能已停止响应的窗口。

为什么不使用FlexTable而不是FlexTable来呈现数据?

与FlexTable相比,CellTable在呈现大量数据方面要高效得多

对于上面的代码,我会这样做。去掉第一个for循环,因为execute()是递归的

Scheduler.get().scheduleIncremental(new RepeatingCommand() {
    int rowCounter = 0;
    int rowCount = 10;

@Override
public boolean execute() {

// do some work
    for (int j = 0; j < columnCount; j++) {
    table.setText(i, j, data.get(i)[j]);
}

rowCounter++;

if (rowCounter >= rowCount)
    return false;

return true;
   }
});
Scheduler.get().scheduleIncremental(新的RepeatingCommand()){
int rowCounter=0;
int rowCount=10;
@凌驾
公共布尔执行(){
//做些工作
对于(int j=0;j=行计数)
返回false;
返回true;
}
});

因为我只需要输出数据。我不需要那个CellTable的代码开销provides@maks你把它完全倒过来了。FlexTable的开销很高。另一方面,CellTable将非常快速地渲染大量行。从我问题中的代码可以看出,我使用的数据对象包含数据库中的数据。要使用CellTable,我必须创建一个TextCell来输出数据,但它的getValue方法有一个object参数,该参数必须包含具体字段才能输出其值。然而,我没有这样的具体领域。我将数据保存在具有数组列表的对象中,因此我需要一些迭代逻辑来输出它们使用CellTable,稍后谢谢您。