リストとテーブルの最適化
リストとテーブルを使用する Visualforce ページのパフォーマンスを改善するには、ページごとの表示データ量を制限し、テーブルごとの編集可能な項目数を減らします。また、ページネーションを実装したり、<apex:pageBlockTable> コンポーネントを静的 HTML テーブルに置き換えたりすることもできます。
可能な場合はデータグリッドを回避する
データグリッドは、編集可能な項目を含むレコードを表示するテーブルです。データグリッドはページ上で何千もの入力コンポーネントに拡大され、最大ビューステートサイズを超えることがよくあります。大きなデータグリッドでは、結果として Visualforce コンポーネントツリーの処理が遅くなります。
Visualforce ページにデータグリッドが含まれる場合、次の作業を実行します。
- ページネーションや絞り込みを使用する。
- ビューステートサイズを削減するには、データを参照のみとする (可能な場合)。
- 指定されたレコードに不可欠なデータのみを表示する。Ajax ベースの詳細ボックスまたは個別の詳細ページへのリンクを提供します。
静的 HTML テーブルを考慮する
<apex:pageBlockTable> などの反復コンポーネントを含む Visualforce ページには、最大 1,000 個または 10,000 個 (参照のみモードでページを実行する場合) の項目を含めることができます。ただし、rendered 属性が明示的に指定されている <apex:column> コンポーネントが <apex:pageBlockTable> に含まれている場合、この制限の前にページパフォーマンスが低下することがあります。
Visualforce ページに大きなテーブルが含まれている場合、ページネーションを実装することをお勧めします。または、<apex:pageBlockTable> コンポーネントの代わりに静的 HTML テーブルを使用することができます。HTML テーブル内で <apex:repeat> コンポーネントを使用して HTML 行要素を反復処理します。<apex:repeat> を使用する HTML テーブルの例は、apex:repeat コンポーネントの参照ページを参照してください。