Loading

ビューステートの最大表示サイズの制限を解消する方法はありますか

公開日: Nov 21, 2024
説明

ビューステートの最大表示サイズの制限 (××× KB) を超えています。このページのビューステートのサイズは、××× KB でした

ビューステートの最大表示サイズを超えるエラーが発生し、Visualforceページが閲覧できなくなった場合、Visualforceページのコンポーネントを削減する必要があります。

解決策

こちらの制限値は、Salesforce の拡張ができない制限値です。
そのため、Visualforce ページ上に表示されるコンポーネントの内、ビューステート(View State)のサイズが大きいコンポーネントを削減していただき、ビューステートサイズを削減していただく必要があります。

ビューステートのサイズの確認方法

1. [個人設定] で、[クイック検索] ボックスに「高度なユーザーの詳細」と入力し、[高度なユーザーの詳細] を選択します。結果がない場合は、[クイック検索] ボックスに「個人情報」と入力し、[個人情報] を選択します。
2. [編集] をクリックします。
3. [開発モード] チェックボックスがオフの場合は、オンにします。
4. [開発モードでビューステートを表示] チェックボックスをオンにします。
5. [保存] をクリックします。

参考
私の設定: 個人設定の更新
[View State (ビューステート)] タブ


エラーの出るページに移動し、表示するデータ量を削減しページが正常に表示されることを確認のうえ、
開発者モードで表示される、エディタ(画面下部)のタブメニューに表示される「View State」から確認可能です。

このメニューを開くことで、画面を構成するコンポーネントごとのビューステートのサイズを確認できます。

  • ビューステートサイズを減らす際の考慮点
  1. <apex:form>を複数使っている場合は一つにする。 
  2. <apex:form>内で利用している項目数を削減する。
  3. controllers や controller extensions にて SOQL にて取得する項目数を減らす。(不必要な項目があれば減らす) 
  4. ビューステートに影響のあるコンポーネントを減らす (c: などで記述される Visuaforce Component を指します) 
  5. StandardSetController クラスを利用していない場合は利用を検討する。
  6. 状態の維持に不可欠ではなく、ページの更新時にも不要な変数には、Apex コントローラで transient キーワードを使用する。


関連情報
StandardSetController クラス

transient キーワードの使用

ナレッジ記事番号

000385325

 
読み込み中
Salesforce Help | Article