この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

保存可能なアクション

アクションを保存可能 (キャッシュ可能) としてマークすると、サーバとの往復を待たずにクライアント側ストレージのキャッシュデータをすばやく表示できるようになり、コンポーネントのパフォーマンスが向上します。キャッシュデータが古くなっている場合、フレームワークによってサーバから最新データが取得されます。特に、待ち時間の長い接続、低速の接続、信頼性の低い接続 (3G ネットワークなど) のユーザの場合には、キャッシュが役立ちます。
  • 保存可能なアクションは、サーバにコールされない可能性があります。データを更新または削除するアクションは保存可能とマークしないでください。
  • キャッシュに保存可能なアクションについては、フレームワークがキャッシュされた応答をただちに返し、データが古い場合には更新も行います。そのため、保存可能なアクションのコールバックが複数回呼び出されていることがあります。この場合、初回はキャッシュされたデータが使用され、それ以降はサーバからの更新済みデータが使用されます。

警告

大部分のサーバ要求は参照のみで羃等です。つまり、データの変更が発生することなく、必要に応じて何度も要求の繰り返しまたは再試行を行うことができます。羃等なアクションに対する応答はキャッシュできるため、後続の同一アクションですばやく再利用できます。保存可能なアクションで同一アクションを判断する場合、次の組み合わせが重要になります。

  • Apex コントローラ名
  • メソッド名
  • メソッドのパラメータ値

アクションを保存可能としてマーク

API バージョン 44.0 以上のコンポーネントの Apex メソッドから返されるデータをキャッシュするには、Apex メソッドに @AuraEnabled(cacheable=true) アノテーションを付加する必要があります。次に例を示します。

1@AuraEnabled(cacheable=true)
2public static Account getAccount(Id accountId) {
3    // your code here
4}

API バージョン 44.0 より前では、Apex メソッドから返されるデータをキャッシュするには、Apex メソッドをコールするアクションごとに JavaScript コードで setStorable() をコールする必要がありました。API バージョン 44.0 以上では、Apex メソッドを保存可能 (キャッシュ可能) としてマークできるようになり、JavaScript コードの setStorable() をコールする必要がなくなりました。Apex クラスのメソッドのキャッシュ表記が一元化されるため、Apex アノテーション手法の方が優れています。

JavaScript コードで次のようにアクションの setStorable()をコールします。

1action.setStorable();

setStorable 関数は、省略可能な引数を取ります。この引数は、ストレージオプションを表すキー - 値ペアと設定値の設定対応付けです。次のプロパティのみを設定できます。

ignoreExisting
キャッシュをスキップするには、true に設定します。デフォルト値は、false です。
このプロパティは、キャッシュデータが無効であるとわかっている場合 (レコードの変更後など) に便利です。ほとんどありませんが、明示的にキャッシュが無効になっているためにこのプロパティを使用することが必要な場合があります。

アクション応答のストレージオプションを設定するには、この設定対応付けを setStorable(configObj) に渡します。