我有一个没有分页的桌子,因此所有记录都需要用卷轴以一个大流程显示。使用Flex表相同。

Firefox在加载页面时没有大问题,它在90秒内加载了7000个记录。但是,即只有800张唱片!

我们的技术架构师建议将Celltable小部件与InnerHTML一起使用而不是成熟的小部件。

有帮助吗?

解决方案

GWT的网格和弹性源自标准的HTMLTable。基本上,每次插入表行时,IE都会尝试重新整个表格,以便桌子越长,回流的时间越长。因此,在大网格中性能很糟糕。

您最好使用Div元素和样式类似于桌子,行和单元格。

<div class="ftable">
  <div class="ftbody">
    <div class="frow">
      <div class="fcell cell0">Hello</div>
      <div class="fcell cell1">World</div>
    </div>
  </div>
</div>

插入新单元不会导致其他单元格divs回流,因此它更快。

单元格是内联的,因此它们向左漂浮。行和表 /部分是常规块Divs。您可以通过其他样式控制特定列的单元格的宽度。

例如

.ftbody {overflow-y:scroll; overflow-x:hidden; height: 120px; }
.fcell { display: inline; }
.cell0 { width: 80px; }
.cell1 { width: 120px; }

这也可以更轻松地进行修复标头 /可滚动内容之类的事情,因为您可以通过溢出滚动条指定身体为一定的高度。站点,例如 这个 可能会给您您可以使用的布局 /样式的想法。

其他优化将是如果您不需要小部件,则不使用小部件来表示细胞。如果您需要添加事件处理程序等,则小部件最有用,如果您不需要InnerHTML / Text属性注入文本或HTML的摘要。它减轻了内存足迹并加快了事件处理。

其他提示

如果您没有任何排序要求,我建议使用新的GWT 2.1.0 CellTable,应该足够快:

http://www.jarvana.com/jarvana/jarvana/view/com/google/gwt/gwt-dev/2.1.0/gwt-dev-2.1.0-javadoc.jar!/com/google/google/google/gwt/gwt/gwt/user/cellview /client/celltable.html

(这实际上可能与分类一起工作,我只是还没有弄清楚如何)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top