軽量なフォームはパフォーマンスが良い:リソースを圧縮する
HTML5 フォームには複数の外部リソース(画像、JavaScript、CSS ファイルなど)を含めることができます。外部リソースは、ブラウザーがフォームを要求するたびにネットワーク経由で送信されます。ネットワーク経由での送信にかかる時間は、ファイルのサイズに正比例します。
したがって、フォームのパフォーマンスを向上させるには、外部リソースのサイズを減らし、どうしても必要なリソースのみを使用することをお勧めします。XFA フォームに対して以下の最適化を行うことにより、フォームの外部リソースのサイズを減らすことができます。
- 圧縮された画像を使用します。フォームをレンダリングするのに必要なネットワークアクティビティとメモリ量が減少します。これにより、フォームの読み込み時間が大幅に短縮されます。
- AEM Configuration Manager(Day CQ HTML Library Manager)の縮小オプションを使用して、JavaScript と CSS ファイルを圧縮します。詳しくは、OSGi 設定を参照してください。
- Web 圧縮を有効にします。フォームから送信されるリクエストと応答のサイズが減少します。詳しくは、AEM Forms サーバーのパフォーマンス調整を参照してください。
興味を維持する:必要なフィールドのみを表示する
1 つの HTML5 フォームが数百ページに達することもあります。多数のフィールドを含むフォームは、ブラウザーでの読み込みが遅くなります。XFA フォームに対して以下の最適化を行うことにより、多数のフィールドとページを含むフォームを最適化できます。
- 大規模なフォームを複数のフォームに分割できるかどうか判定します。フォームセットを使用して小規模なフォームをグループ化し、1 つの単位として提示することもできます。フォームセットでは、必要なフォームのみが読み込まれます。さらにフォームセットでは、異なるフォーム内の共通するフィールドでデータバインディングが共有されるように設定することができます。データバインディングを使用すると、ユーザーが共通する情報を一度入力すれば、その後のフォームでは情報が自動的に入力されるので、パフォーマンスの大幅な向上につながります。フォームセットについて詳しくは、AEM Forms におけるフォームセットを参照してください。
- セクションを分割し、各セクションを異なるページに移動することを検討します。HTML5 フォームでは、ページスクロールのリクエスト時に各ページが動的に読み込まれます。スクロールされたページ(現在表示されているページとそれ以前に表示されたページ)のみがメモリに格納され、残りのページはオンデマンドで読み込まれます。このため、セクションを分割して独立したページに移動することにより、フォームの読み込みにかかる時間が短縮されます。フォームの先頭ページをランディングページとして使用することもできます。これは、本の目次(TOC)に似ています。フォームのランディングページには、フォームの他のセクションへのリンクのみを含めます。これにより、フォームの先頭ページの読み込み時間が大幅に短縮され、ユーザーエクスペリエンスが向上します。
- 条件付きのセクションをデフォルトで表示しないようにします。特定の条件が満たされたときのみ、これらのセクションを表示します。これは、DOM のサイズを最小限に抑えるのに役立ちます。タブナビゲーションを使用して、一度に 1 つのセクションのみを表示することもできます。