パフォーマンスガイド

Avonni ダイナミックコンポーネントはデフォルトで高速です。このガイドは、コンポーネントが複雑化してもその状態を維持するのに役立ちます。

最も重要な3つのルール

1. データは一度取得して下に渡す

  • 親コンポーネントが Salesforce に問い合わせるべきです

  • 子コンポーネントはリソースを通じてデータを受け取ります

  • 複数のコンポーネントが同じデータを独立して問い合わせるのは避けてください

2. 必要なものだけ読み込む

  • クエリでは具体的なフィルターを使ってください(例:RecordType、Status、日付範囲など)。

  • すべてを一度に読み込むのではなく、条件付き表示でセクションの表示/非表示を切り替えてください

  • データを即時に読み込む必要があるか、ユーザー操作まで待てるかを検討してください

3. 構造はシンプルに保つ

  • 深くネストされた構造よりもフラットなコンポーネント構造の方がパフォーマンスが良いです

  • 複雑なデータには専門化されたコンポーネント(データテーブル, ツリー)を使用し、複数のダイナミックコンポーネントをネストするのは避けてください

  • 2〜3レベル以上ネストしている場合は、通常もっと単純な方法があります


よくあるパフォーマンスの誤り

各ネストされたコンポーネントがそれぞれ "On Load" クエリを実行する これによりクエリが連鎖して全体が遅くなります。

親がデータを取得し、サブセットをリソース経由で子に渡す クエリは1回、複数のコンポーネントがその結果を使います。


データテーブルで最初から50列すべてを読み込むこと ほとんどのユーザーは最初は5〜7個の主要フィールドだけで十分です。

必須の列だけ表示し、詳細はオンデマンドで表示してください 使用する フローパネルを開く または ダイナミックコンポーネントパネルを開く でレコードの完全な詳細を確認してください。


コンポーネントAがコンポーネントBを更新し、それがコンポーネントAを更新する 無限ループや過剰な再レンダリングを引き起こします。

一方向のデータフローを設計する 親→子はリソース経由、子→親はイベント経由で通信します。


いつ最適化すべきか

次のような場合はパフォーマンスの問題がある可能性があります:

  • コンポーネントの読み込みに2〜3秒以上かかる

  • ユーザーが複数の読み込みスピナーを順番に見る

  • ブラウザのネットワークタブで1ページ読み込みに対して10件以上の Salesforce クエリが表示される

ブラウザの開発者ツール(Network タブ)を使用する 実際に何が起きているかを確認してください。多数のリクエストや遅いクエリが見られるなら、そこが出発点です。


助けが必要ですか?

多くの Trailblazer が私たちの コミュニティグループ でこれらの課題に取り組んできました。彼らは共有します:

  • 診断を伴うネットワークタブのスクリーンショット

  • 改善前/改善後のアーキテクチャ

  • 大規模データセット向けのクエリパターン

  • 本番環境で実際に効果があったこと

コミュニティに参加する | 直接の質問: [email protected]

最終更新

役に立ちましたか?