ページ付けのないテーブルを取得したため、すべてのレコードをスクロールバーを使用して1つの大きなフローに表示する必要があります。同じためにフレックステーブルを使用します。
Firefoxはページの読み込みに大きな問題はなく、約90秒で7000レコードを読み込みます。しかし、IEは単に800レコードでハングします!
テクニカルアーキテクトは、本格的なウィジェットではなく、innerhtmlでセルテーブルウィジェットを使用することをお勧めします。
ページ付けのないテーブルを取得したため、すべてのレコードをスクロールバーを使用して1つの大きなフローに表示する必要があります。同じためにフレックステーブルを使用します。
Firefoxはページの読み込みに大きな問題はなく、約90秒で7000レコードを読み込みます。しかし、IEは単に800レコードでハングします!
テクニカルアーキテクトは、本格的なウィジェットではなく、innerhtmlでセルテーブルウィジェットを使用することをお勧めします。
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のスニペットを挿入するだけで最も便利です。メモリフットプリントを軽減し、イベント処理を高速化します。
並べ替えの要件がない場合は、新しいGWT2.1.0CellTableを使用することをお勧めします。これは十分に高速である必要があります。
(実際には並べ替えで機能する可能性がありますが、まだわかりません)