1

ページ付けのないテーブルを取得したため、すべてのレコードをスクロールバーを使用して1つの大きなフローに表示する必要があります。同じためにフレックステーブルを使用します。

Firefoxはページの読み込みに大きな問題はなく、約90秒で7000レコードを読み込みます。しかし、IEは単に800レコードでハングします!

テクニカルアーキテクトは、本格的なウィジェットではなく、innerhtmlでセルテーブルウィジェットを使用することをお勧めします。

4

2 に答える 2

2

GWTのGridとFlexTableは、標準の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>

新しいセルを挿入しても、他のセルdivがリフローしないため、高速になります。

セルはインラインdivであるため、左に浮きます。行とテーブル/セクションは通常のブロックdivです。追加のスタイル設定により、特定の列のセルの幅を制御します。

例えば

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

これにより、オーバーフロースクロールバーを使用して本文を特定の高さに指定できるため、ヘッダーやスクロール可能なコンテンツの修正なども簡単に行えます。このようなサイトはあなたが使用できるレイアウト/スタイルのアイデアをあなたに与えるかもしれません。

他の最適化は、ウィジェットが必要ない場合は、ウィジェットを使用してセルを表現しないことです。ウィジェットは、イベントハンドラーなどを追加する必要があり、追加しない場合は、innerHtml/Textプロパティによってテキストまたはhtmlのスニペットを挿入するだけで最も便利です。メモリフットプリントを軽減し、イベント処理を高速化します。

于 2011-01-24T21:52:47.183 に答える
0

並べ替えの要件がない場合は、新しいGWT2.1.0CellTableを使用することをお勧めします。これは十分に高速である必要があります。

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

(実際には並べ替えで機能する可能性がありますが、まだわかりません)

于 2011-01-25T16:48:44.813 に答える