Question

J'a une table qui n'a pas de pagination, donc tous les documents doivent être affichés dans un grand flux avec barre de défilement. En utilisant la table Flex pour le même.

Firefox n'a pas gros problèmes dans le chargement de la page, il charge 7000 enregistrements dans environ 90 secondes. Mais IE simplement se bloque avec 800 enregistrements!

Notre architecte technique recommande d'utiliser un widget celltable avec innerHTML au lieu de widgets à part entière.

Était-ce utile?

La solution

Grille de GWT et FlexTable sont dérivés d'un HTMLTable standard. En gros, chaque fois que vous insérez une ligne de table, IE essaie de refusion la table entière de sorte que plus la table, plus la refusion prend. La performance est donc terrible dans les grands réseaux.

Vous pourriez être mieux d'utiliser des éléments div et style pour ressembler à une table, rangée et cellules.

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

Insertion d'une nouvelle cellule ne provoque pas les autres divs cellulaires à refusion il est donc plus rapide.

Les cellules sont divs inline ils flottent à gauche. Les lignes et les tables / sections sont divs blocs réguliers. Vous contrôlez de largeur des cellules dans les colonnes notamment par un style supplémentaire.

par exemple.

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

Cela rend plus facile de faire des choses comme en-tête fixe / contenu scrollable trop puisque vous pouvez spécifier le corps à une certaine hauteur avec des barres de défilement de trop-plein. Site tels que cette pourrait vous donner des idées de la mise en page / style que vous pouvez utiliser.

D'autres optimisations serait de ne pas utiliser des widgets pour représenter les cellules si vous en avez pas besoin. Les widgets sont plus utiles si vous avez besoin d'ajouter des gestionnaires d'événements, etc., et si vous ne le faites pas alors juste Injecter des extraits de texte ou html par les propriétés innerHtml / Texte. Il éclaire l'empreinte mémoire et accélère la gestion des événements.

Autres conseils

Si vous n'avez des exigences de tri, je vous recommande d'utiliser la nouvelle GWT 2.1.0 CellTable, qui devrait être assez rapide:

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

(Il pourrait en fait travailler avec le tri, je viens havn't compris comment encore)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top