Visualforce 開発者ガイド
Spring '26 (API version 66.0)
Winter '25 (API version 62.0)
Spring '24 (API version 60.0)
Winter '24 (API version 59.0)
Summer '23 (API version 58.0)
Spring '23 (API version 57.0)
Winter '23 (API version 56.0)
Summer '22 (API version 55.0)
Spring '22 (API version 54.0)
Winter '22 (API version 53.0)
Summer '21 (API version 52.0)
Spring '21 (API version 51.0)
Winter '21 (API version 50.0)
Summer '20 (API version 49.0)
Spring '20 (API version 48.0)
Winter '20 (API version 47.0)
Summer '19 (API version 46.0)
Spring '19 (API version 45.0)
Winter '19 (API version 44.0)
Summer '18 (API version 43.0)
Spring '18 (API version 42.0)
Winter '18 (API version 41.0)
Summer '17 (API version 40.0)
Spring '17 (API version 39.0)
Winter '17 (API version 38.0)
Summer '16 (API version 37.0)
Spring '16 (API version 36.0)
Winter '16 (API version 35.0)
Summer '15 (API version 34.0)
Spring '15 (API version 33.0)
Winter '15 (API version 32.0)
パフォーマンス上の問題の調査
Visualforce 設計ガイドラインの順守
データサイズの制御
頻繁にアクセスするデータのキャッシュ
ページコンポーネントの遅延読み込み
複数の同時要求の処理
効率的な Apex および SOQL の記述
効率的な getter メソッドの記述
リストとテーブルの最適化
ビューステートの最適化
HTML の最適化
CSS の最適化
JavaScript の最適化
画像の最適化
ページへのすべての項目の表示
immediate 属性の慎重な使用
Visualforce のパフォーマンスに関する事例
コンポーネント ID へのアクセスのベストプラクティス
静的リソースのベストプラクティス
コントローラーおよびコントローラー拡張のためのベストプラクティス
コンポーネントファセットの使用のためのベストプラクティス
ページブロックコンポーネントのベストプラクティス
PDF ファイルを表示するためのベストプラクティス
<apex:panelbar> のベストプラクティス
ドキュメント表記規則
用語集
Visualforce のパフォーマンス向上のためのベストプラクティス
Visualforce ページのパフォーマンスを向上する戦略に���いて説明します。
可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。
メモ
-
パフォーマンス上の問題の調査
Visualforce は、標準の Salesforce ページの機能、動作およびパフォーマンスに合わせる機能を開発者に提供するために設計されています。遅延、予期しない動作、その他の問題 (特に Visualforce に関するもの) がある場合は、まず可能性のある問題の原因を調査します。 -
Visualforce 設計ガイドラインの順守
Visualforce ページのパフォーマンスを最適化するには、タスク重視のページを設計し、標準オブジェクトと宣言機能を使用し、コンポーネント階層をフラット化します。 -
データサイズの制御
Visualforce ページには 15 MB の標準応答制限があり、小さいページは大きいページよりも迅速に読み込まれます。読み込み時間を最小限に抑えるには、各ページに表示されるデータ量を制限します。 -
頻繁にアクセスするデータのキャッシュ
アイコンの画像など頻繁にアクセスするデータをキャッシュし、カスタム設定にグローバルデータをキャッシュします。 -
ページコンポーネントの遅延読み込み
コストのかかる計算を減らしたり、遅延したりするには、遅延読み込みを使用します。遅延読み込みを使用すると、必要なコンポーネントが最初にページに読み込まれ、その他の機能は、その情報を必要とするアクションをユーザーが実行するまで遅延されます。この手法では、ユーザーは必要な機能にすばやくアクセスできます。また、ページ全体を読み込む合計時間は同じでも、大きなページの応答性が高くなったように見えます。 -
複数の同時要求の処理
同時要求は他の保留中のタスクをブロックする可能性のある長時間実行されるタスクです。遅延を減らすには、可能な場合はコードを非同期コードブロックに移動して、<apex:actionPoller> コンポーネントを使用する action メソッドを軽量にします。 -
効率的な Apex および SOQL の記述
Visualforce ページの全体的なパフォーマンスを向上するには、効率的な Apex および SOQL を記述します。 -
効率的な getter メソッドの記述
Visualforce 要求では、式、action 属性、および他のメソッドコールが評価されます。フォーム送信などの要求では、クラス内で getter メソッドが複数回コールされる可能性があります。getter メソッドの効率を高めるには、同じレコードの不要な参照を回避することができます。 -
リストとテーブルの最適化
リストとテーブルを使用する Visualforce ページのパフォーマンスを改善するには、ページごとの表示データ量を制限し、テーブルごとの編集可能な項目数を減らします。また、ページネーションを実装したり、<apex:pageBlockTable> コンポーネントを静的 HTML テーブルに置き換えたりすることもできます。 -
ビューステートの最適化
Visualforce ページのビューステートを維持するために、Lightning Platform プラットフォームは、コンポーネントの状態、項目値、およびコントローラーを非表示のフォーム要素に暗号化文字列として格納します。ビューステートには 170KB の制限があります。ビューステートが大きいと、各要求に必要な処理時間 (シリアライゼーションとデシリアライゼーションの時間、暗号化と復号化の時間などを含む) が長くなります。ビューステートのサイズを縮小すると、ページをより迅速に読み込むことができ、ページの停止頻度が少なくなります。 -
HTML の最適化
Visualforce で HTML を検証するサーバー側では、最適化された HTML により処理効率が向上します。クライアント側では、最適化された HTML によりユーザーのブラウザーでの Visualforce ページの応答性が向上します。 -
CSS の最適化
クライアントに効率的に配信するには、Visualforce ページ内で CSS を最適化します。また、最適化された CSS では、キャッシュが改善され、読み込み時間が短くなります。 -
JavaScript の最適化
クライアントに効率的に配信するには、Visualforce ページ内で JavaScript を最適化します。また、最適化された JavaScript では、キャッシュが改善され、読み込み時間が短くなります。 -
画像の最適化
画像は Web ページ最大のコンポーネントであることが多いため、Visualforce ページのパフォーマンスに多大な影響を及ぼします。 -
ページへのすべての項目の表示
多くの項目がある Visualforce ページ (特に、大きなテキストエリア項目があるページや他のエンティティとの主従関係があるページ) では、要求された項目をすべて表示できないことがあります。データは、バッチ制限や返されるデータのサイズに関する制限によって表示されないことがあります。ページに項目をすべて表示するには、表示する項目数を減らします。または、子レコードを照会して結果を関連リストに表示できるコントローラー拡張を作成します。 -
immediate 属性の慎重な使用
immediate 属性が true に設定されている Visualforce コンポーネントでは、ページ上の関連付けられた項目の入力規則が処理されずにアクションが実行されます。この属性は、完了後にページから移動するアクションをコンポーネントで実行する場合のみ使用する必要があります。 -
Visualforce のパフォーマンスに関する事例
Visualforce のパフォーマンスの最適化がどのように連携するかを理解するために、大きなデータグリッドと複雑なオブジェクト階層を備えたページの読み込み時間を短縮する方法を調べます。