次の方法で共有


ページ キャッシュの構成

この記事では、顧客に返される eコマース ページのパフォーマンスを向上させるために Microsoft Dynamics 365 Commerce でページ キャッシュを構成する方法について説明します。

ページ キャッシュを使用すると、eコマース ページをサーバーにキャッシュしてサイト ユーザーに提供できます。 このため、パフォーマンス時間は大幅に向上します。 サイトページ キャッシュとキャッシュの期間を、Commerce サイト ビルダーでサイト ページに対して有効にし、構成することが可能です。 または、ページ キャッシュを有効にする テンプレートを構成し、そのテンプレートを複数のページにまたがって適用することもできます。 ページ キャッシュは、Commerce Version 10.0.21 リリース版 (オンライン ソフトウェア開発キット [SDK] Version 1.31.3 以降) で使用できます。

ページ キャッシュは、ページのすべてのコンテンツを生成し、設定した期間の特定のルートに対してそのコンテンツを保存することで動作します。 別のユーザーが同じページにアクセスすると、ページを呼び出して応答を返す代わりに、キャッシュされたページが直ちにユーザーに返されます。 キャッシュされたページは古くなる可能性があるので、ページ キャッシュをいつ、どこで使用する必要があるのか理解することが重要です。

製品価格などの動的データを含む一部のページは、可能な限り最新の情報である必要があります。 これらのページが作成される時に、複数のデータ アクションが呼び出される場合があります。 これらのページでは引き続きページ キャッシュを使用できます。 ただし、キャッシュのタイムアウトを低く設定する必要があります。 これにより、ページが頻繁に更新され、最も正確なコンテンツが eコマースの顧客に提供されます。

ページ キャッシュの有効化

ページ キャッシュを有効にするには、最初にサイト レベルでページ キャッシュ機能を有効にする必要があります。 次に、キャッシュする各ページ、または複数のページに適用するテンプレートで機能を構成します。

Commerce サイト ビルダーでページ キャッシュ機能を有効にする

Commerce サイト ビルダーでサイトに対するページ キャッシュ機能を有効にするには、次の手順に従います。

  1. サイト 設定 > 拡張に移動します。
  2. キャッシュの表示の有効化チェック ボックスをオンにします。
  3. 保存と公開を選択します。

キャッシュの表示の有効化チェックボックスをオフにすると、ページ キャッシュをいつでも無効にできます。 その場合、ページ キャッシュを使用するように以前に構成されているページはキャッシュをスキップし、すべての要求に対してページを表示します。

次の図は、Commerce サイト ビルダーでページ キャッシュを有効にする方法を示しています。

Commerce サイト ビルダーのページ キャッシュの有効化

ページ上のページ キャッシュの構成

既定のページ モジュールを使用するページについては、Commerce サイト ビルダーでキャッシュ構成が自動的に使用できます。 特定のページに対してページ キャッシュを構成するには、サイト ビルダーのページ、次にモジュール階層で既定のページ モジュールの順に選択し、右側のモジュール プロパティ ウィンドウを開きます。 その後、プロパティ ウィンドウで キャッシュ ページ サーバー側チェック ボックスがオンになっていることを確認します。

次の図は、Commerce サイト ビルダーの既定のページ モジュールに対してプロパティ ウィンドウで選択されたキャッシュ ページ サーバー側チェックボックスを示しています。

Commerce サイト ビルダーのページ キャッシュの構成

ページに対するページのキャッシュを有効にすると、そのページが有効に設定されます。 プロパティ ウィンドウのキャッシュ ページ サーバー側チェックボックスの下に表示される次の 2 つの追加のプロパティで、キャッシュ時間を構成できます。

  • ページ キャッシュ TTL ー この必須プロパティは、削除されるページがキャッシュに格納される絶対時間 (秒) を表します。 (TTL は「存続時間」の意)。たとえば、ページ キャッシュ TTL プロパティは 300 に設定されます。 この場合、ページが計算され、キャッシュに保存された後で、300 秒後に発生した同じページへの要求は、キャッシュされた結果を使用しない必要があります。 代わりにページは再計算される必要があります。 値が設定されない場合、キャッシュは有効になりません。 3600 の値は最初から使用する価値として優れた値です。
  • ページ キャッシュ TTR ー この必須プロパティは、エントリが更新される前にキャッシュ内に格納される時間 (秒) を表します。 (TTR は「更新時間」を意味します)。ページの TTR が期限切れになると、ページは次の要求に対して引き続き表示されます。 ただし、バックグラウンドでは、同じルートの新しいページが更新されたコンテンツで計算され、キャッシュに保存されます。 値が設定されない場合、キャッシュは有効になりません。 300 の値は最初から使用する価値として優れた値です。

ページへのコンテンツ変更

Commerce サイト ビルダーでエディター モードのページを使用するたびに、ページ キャッシュが無効になります。 そのため、変更を行った結果は、すぐにキャンバス上に表示されます。 ページの編集が完了して公開されると、Commerce はページの古いキャッシュされたエントリを破棄し、更新されたコンテンツがあるページの新しいエントリを保存します。

ページ キャッシュのデバッグ

ページ キャッシュが原因ではないと考えられる奇妙な動作が生じていた場合は、debug=true クエリ パラメーター (たとえば https://www.adventure-works.com/termsandconditions?debug=true ) を使用してページに対して同じ要求を呼び出しできます。 このクエリ パラメーターを設定すると、要求に対するページ キャッシュを無効にします。 次に、キャッシュされる情報と表示される情報の違いを比較できます。

データが古くならないようにする場合は、ページ キャッシュを使用する

ページ キャッシュは引き続き、価格や在庫確認などの古いデータを表示しないページで使用できます。 (これらのページの例では、GetActivePrice API ページを呼び出すページが含まれます)。キャッシュからページが提供された後にデータが取り出されるようにするためには、データを取得するデータ アクションがクライアント側で実行されている必要があります。 クライアント側のデータ読み込みアクションの詳細については、ページ読み込みデータ アクションを参照してください。

ベスト プラクティス

製品コレクション モジュールなどの一部のモジュールでは、モジュールがクライアント側に確実に読み込まれる構成設定がサポートされます。 製品コレクション モジュールでは、ユーザー コンテキストを使用して、「おすすめ」などのクエリをサポートします。ただし、このデータはユーザーごとに異なるので、キャッシュには使用されません。 この場合、ページがキャッシュされている場合、モジュールの遅延読み込みを有効化プロパティを有効にして、モジュールがクライアント側に読み込まれる必要があります。

次の図は、Commerce サイト ビルダーの モジュールの遅延読み込みを有効化プロパティのチェック ボックスを示しています。

Commerce サイト ビルダーのモジュール遅延読み込みの有効化プロパティ