コンポーネントに読み込まれたデータをキャッシュする
パフォーマンスは、優れたアプリの主な特性の 1 つです。 アプリがデータを最初に読み込むのにしばらく時間がかかる場合があります。 ただし、高速と認識されるには、最初に取得する必要があるデータ量を最小限に抑える必要があります。 さらに、アプリがデータを取得すると、データを最新の状態に保てる限り、データがキャッシュされます。
たとえば、アプリでユーザーに関する情報を表示したいとします。
この情報を表示するには、Microsoft Graph を 3 回呼び出す必要があります。 まずユーザーに関する情報、次にそのユーザーの画像、最後にプレゼンスを取得します。
この情報を 1 人のユーザーに対してではなく、5 人のユーザーに表示するとします。 アプリは 15 件の要求を実行する必要があります。 アプリ内の複数の場所 (メッセージの表示、ファイルの作成者、会議の出席者の表示など) でユーザーに関する情報を表示する必要がある場合は、既に取得済みのデータの呼び出しを掛けることができます。
既に持っているデータの読み込みを避けるために、カスタム キャッシュ メカニズムを構築しようと考えるでしょう。 でもその前に、代わりに Microsoft Graph ツールキットの使用を検討してください。
Microsoft Graph ツールキット コンポーネント用にキャッシュを構成する
Microsoft Graph ツールキット コンポーネントは、取得したデータを自動的にキャッシュします。 アプリで特定の情報が必要な場合、その情報は 1 回のみダウンロードされ、期限切れになるまでキャッシュに保存されます。 Microsoft Graph ツールキットは既定で 1 時間データをキャッシュします。 プレゼンスは頻繁に変更される傾向にあるので、ユーザーのプレゼンスに関する情報は 5 分間だけキャッシュされます。
キャッシュをグローバルに制御できるだけでなく、必要に応じて特定のワークロードの構成を上書きできます。 キャッシュ設定は、CacheService クラスで公開されます。
すべてのコンポーネントのキャッシュ期間を変更するには、次のdefaultInvalidationPeriod
プロパティの値を変更 します。
import { CacheService } from '@microsoft/mgt';
// set cache expiration for all components to 30 minutes
CacheService.config.defaultInvalidationPeriod = 1800000;
注:
コンテンツ配信ネットワークから Microsoft Graph ツールキットを読み込む場合は、次のように、グローバル mgt
変数で CacheService
構成にアクセスできます。
<script src="https://unpkg.com/@microsoft/mgt@3/dist/bundle/mgt-loader.js"></script>
<script>
mgt.CacheService.config.defaultInvalidationPeriod = 1800000;
</script>
すべてのコンポーネントについてキャッシュを無効にするには、isEnabled
プロパティを false
に設定します。
import { CacheService } from '@microsoft/mgt';
// disable cache for all Microsoft Graph Toolkit components
CacheService.config.isEnabled = false;
重要
Microsoft Graph ツールキットのすべてのコンポーネントについてキャッシュを無効にすると、アプリは Microsoft Graph から同じデータを複数回ダウンロードする可能性があります。 これはアプリケーションのパフォーマンスに悪影響を与えます。
ユーザー データのキャッシュをコンポーネントで無効にするには、ユーザー キャッシュの isEnabled
プロパティの値を false
に設定します。
import { CacheService } from '@microsoft/mgt';
// disable people cache for all Microsoft Graph Toolkit components
CacheService.config.people.isEnabled = false;
mgt-get コンポーネントのキャッシュを構成する
Microsoft Graph ツールキット コンポーネントはワークロードごとに人、写真、またはグループなどのデータをキャッシュします。 このようにャッシュを構成すると、1 つのコンポーネントがデータを読み込み、他のコンポーネントは重複要求を実行せずにキャッシュからデータを取得できます。 動作が異なる唯一のコンポーネントは、mgt-get です。
mgt-get コンポーネントでは、アプリで Microsoft Graph から任意のデータを読み込み、表示することができます。 mgt-get は任意のデータを表示できるので、response という名前の独自のキャッシュを持っています。 他のキャッシュ オブジェクトと同様に、response キャッシュを有効にするか、どれだけの期間保持するかを構成できます。 response キャッシュは Microsoft Graph ツールキットの他のコンポーネントで使用されません。
次の手順
学習した情報を実践に移し、Microsoft Graph ツールキット コンポーネントの構成設定を変更しましょう。