Salesforce における View State とは?
Salesforce における View State とは、Visualforce ページ(View:画面)の状態(State)を維持するために項目値やコントローラの状態を非表示のフォーム要素に格納しており、この暗号化された文字列のことを言います。
View State のサイズが大きいほど、各要求の処理時間が長くなります。View State のサイズを小さくすることで、Visualforce ページはより迅速に読み込まれることになります。
View State サイズの制限
Salesforce の View State には、170KBまでという制限があります。
Salesforce はクラウド上で動作しているシステムです。画面の読み込みが行われる際に Salesforce 組織全体としてのパフォーマンスを保つために、ガバナ制限というあらゆる制限が設けられています。
View State についてもその1つで、Visualforce ページのパフォーマンスを保つために画面構築時には制限を考慮した開発が必要になります。Salesforceでは、View State のサイズを削減し、より処理速度の速いVisualforceページの構築が望まれます。
View State サイズの確認方法
View State サイズは、開発者コンソールの「View State」タブで確認できます。
View State サイズを縮小することが望まれることはご説明しました。では、現在の表示画面の View State サイズがどれほどなのか、確認したいでしょう。View State サイズは、Salesforce 標準で用意されている開発者コンソールの「View State」タブで確認することができます。
事前に設定が必要な箇所があります。ユーザの設定画面から、「開発モード」「開発モードでビューステートを表示」の2つのチェックボックスにチェックし、保存します。この設定で開発者コンソールの「View State(ビューステート)」タブが有効になります。
View State タブの設定を有効化後、Visualforceページの処理を動かすことで処理実行時のView State サイズを確認することができます。View State タブ内の「Size」列にサイズが表示されます。
View State サイズの削減
それでは、View State サイズを縮小する際の考慮点についてご紹介します。
View State サイズを縮小するために、以下のような点を考慮しましょう。
・
タグを複数使用している場合、1つにする。
・ タグ内で利用している項目を減らす。
・Apex コントローラで、SOQLで不要な項目を取得している場合は項目を減らす。
・状態の維持に不可欠でない、また、ページ更新時に不要な変数には Apex コントローラで「transient」キーワードを利用する。
・View State に影響のある component を減らす。
・StandardSetController クラスを利用していない場合は、利用を検討する。
上記の考慮点から、より良いパフォーマンスを維持できるような設計を検討しましょう。
さいごに
View State について理解した設計を行えるようにしましょう。
Visualforce ページの開発の際に、ネックになりやすい View State サイズですが、パフォーマンスの優れた画面を設計するには必要な知識であるため、今回ご紹介した制限や削減方法を覚え、活用できるようにしましょう。]]>