コンポーネントに読み込まれたデータをキャッシュする

完了

パフォーマンスは、優れたアプリの主な特性の 1 つです。 アプリがデータを最初に読み込むのにしばらく時間がかかる場合があります。 ただし、高速と認識されるには、最初に取得する必要があるデータ量を最小限に抑える必要があります。 さらに、アプリがデータを取得すると、データを最新の状態に保てる限り、データがキャッシュされます。

たとえば、アプリでユーザーに関する情報を表示したいとします。

ユーザーに関する情報を示す Microsoft Graph ツールキット Person コンポーネントのスクリーンショット。

この情報を表示するには、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 ツールキット コンポーネントの構成設定を変更しましょう。