1. その他の開発タスク

HTMLキャッシュの構成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

HTMLキャッシュは、ページ全体ではなく、レンダリングをキャッシュする出力キャッシュです。HTMLキャッシュを使用して、Webサイトのパフォーマンスを向上させます。

HTML出力キャッシュを有効にするには:

  1. \App_Config\Sitecore\CMS.Core\Sitecore.Sites.configファイルのsitesノードで定義済みサイトのsite仕様にパッチを適用し、サイトのcacheHtmlプロパティをtrueに設定して、そのサイトのHTML出力キャッシュを有効にします。

    メモ

    インストール時に設定されたwebsiteデフォルトのサイトはすでに存在しています。この設定は、自分で作成するサイトとHTMLキャッシュが必要なサイトに対して指定する必要があります。

    手記

    各キャッシュのサイズは、サイト ノードのhtmlCacheSizeプロパティで指定できます。

  2. Sitecoreが出力をキャッシュするレンダリングにキャッシュ オプションを追加します。これには、次の2つの方法があります。

    • レンダリングを使用するたびにオプションを指定することで、ローカルで。これを行うには、コンテンツ エディターでアイテムを開き、PresentationタブでDetailsをクリックし、オプションを設定するレンダリングをクリックします。

    • レンダリングの定義項目でオプションを指定することにより、グローバルに。これは、このレンダリングのすべての使用のデフォルト設定です。これを行うには、コンテンツ ツリーのsitecore/Layout/Renderings部分でレンダリング定義アイテムを開き、Cachingセクションのオプションに移動します。

    次のオプションがあります。

    • キャッシュ可能

      Sitecoreがレンダリングをキャッシュするかどうかを指定します。

    • インデックス更新時にクリア

      Sitecoreは、コンテンツ検索インデックスを更新するときにキャッシュをクリアします。

      これは、Sitecoreインスタンスがコードを含むレンダリング、コントロール、またはサブレイアウトにHTMLキャッシュを使用し、このコードがインデックスに依存する場合に重要です。詳しくは、インデックス依存のHTMLキャッシュ を参照してください。

    • データによって異なる

      Sitecoreは、アクセスされたアイテムに基づいて出力をキャッシュします。これは、ヘッダーやフッターなど、コンテンツの一貫性が高い場合に便利です。

    • デバイスによって異なります

      Sitecoreは、各デバイスの出力を個別にキャッシュします。

    • ログインによって異なります

      Sitecoreは、認証されたユーザーと認証されていないユーザー用の2つの出力コピーをキャッシュします。

    • パラメータによって異なる

      Sitecoreは、レンダリングが受け入れる各パラメーターの出力をキャッシュします。

    • クエリ文字列によって異なる

      Sitecoreは、クエリ文字列パラメーターの一意の組み合わせごとに出力をキャッシュします。

    • ユーザーによって異なる

      Sitecoreは、認証された各ユーザーの出力をキャッシュします。

    • キャッシュのクリーニング動作

      この設定は、Sitecoreのキャッシュ クリア動作とパブリッシュ操作との関係を指定します。可能な値と影響については、次のセクションで説明します。

キャッシュ クリーニング動作の設定

この設定では、コンテンツを更新および公開するときにSitecoreがキャッシュをクリアする方法を指定します。設定できる値は3つあります。

  • 公開時にクリア

    Sitecoreは、パブリッシュするたびにレンダリングのキャッシュをクリアします。これは、cacheHtmlプロパティの値をtrueに設定して構成するすべてのサイトに当てはまります。 publish:endイベント ハンドラーは、標準インストールでは次のように構成されます。

    <event name="publish:end">
    <handler type="Sitecore.Publishing.SmartHtmlCacheClearer, Sitecore.Kernel" method="ClearCache" resolve="true" />
    ...
    </event>

    パブリッシュ時にSitecoreでサイトのキャッシュをクリアしない場合は、次のようにpreventHtmlCacheClear属性をサイト定義に追加できます。

    <site name="custom_website" cacheHtml="true" preventHtmlCacheClear="true"  />
  • Clear On Content Update

    これは最も複雑なシナリオであり、別のセクションで説明します。

  • クリアしない

    Sitecoreは、パブリッシュ時に出力キャッシュをクリアしません。

「コンテンツ更新時にクリア」オプションの使用

これを キャッシュ クリーニング動作 設定の値として指定すると、Sitecoreは、関連付けられたコンテンツが変更されたときにのみ、このレンダリングの出力キャッシュをクリアします。これは、cacheHtmlプロパティとenablePartialHtmlCacheClearプロパティの両方をtrueに設定して構成するすべてのサイトに当てはまります。

enablePartialHtmlCacheClearをfalseに設定してサイトを設定すると、このオプションは無視され、Sitecoreはパブリッシュのたびにレンダリング キャッシュをクリアします。このオプションでは、レンダリングのContent Dependenciesフィールドの値が使用されます。このフィールドの値に基づいて、Sitecoreは、すべてのコンテンツの依存関係をレンダリング キャッシュ キーに関連付けるマップをメモリに保持します。コンテンツが (ローカルまたはリモート データベースで) 変更されると、Sitecoreはマップを見て、関連するすべてのキャッシュ エントリをクリアします。

次のハンドラは、標準インストールのitem:saved,item:saved:remoteitem:deleted、およびitem:deleted:remoteイベントに対して設定されます。

<handler type="Sitecore.Publishing.PartialHtmlCacheClearer, Sitecore.Kernel" method="OnItemEvent" resolve="true" />

MVCレンダリングのコンテンツ依存関係の構成 に 詳細情報があります。

シナリオ例

次の例は、次のようなアイテム構造がある場合の動作を示しています。

Item hierarchy

また、Content Itemをデータソースとして使用する単一のレンダリングを含むページもあります。

次の表は、パブリッシング時にこのレンダリングの出力キャッシュがクリアされる項目と、Content Dependenciesフィールドで指定した値によってどのように異なるかを示しています。

コンテキスト依存性仕様

公開時にキャッシュがクリアされるアイテム

筆記

No option selected
  • Content Item

何も指定しない場合は、データソースアイテムが使用されます。

Ancestors option selected
  • Sitecore

  • Content

  • Home

Content Itemアイテムはキャッシュのクリアをトリガーしません。

Parent options selected
  • Home

Siblings option selected
  • Sibling Item

Parent and Sibling options selected
  • Home

  • Sibling Item

Related Items option selected
  • Content Item

  • 参照するすべてのアイテム Content Item

Sitecoreは参照にLinkデータベースを使用します。

Siblings and Related Items options selected
  • Sibling Item

  • 参照するすべてのアイテム Content Item

Sitecoreは参照にLinkデータベースを使用します。

関連アイテムは、兄弟アイテムではなく、データソースアイテムに対してのみ計算されます。

Recursive Related Options option selected
  • Content Item

  • 参照するすべてのアイテム Content Item

Sitecoreは参照にLinkデータベースを使用します。

単独で使用すると、Recursive Related Itemsと同じ結果が得られますRelated Items

Siblings and Recursive Related Items options selected
  • Sibling Item

  • すべてのアイテムの参照元 Sibling Item

Sitecoreは参照にLinkデータベースを使用します。

Related Itemsとは異なり、Recursive Related Itemsを他のオプション (Siblingsなど) と一緒に使用すると、Sitecoreはデータ ソース自体ではなく、他のオプションによって生成されたアイテムに対して参照を計算します。

Children option selected
  • Child Item

Descendants option selected
  • Child Item

  • Descendant Item

キャッシュは、レンダリング定義アイテムが公開されると自動的にクリアされます。これは、キャッシュの設定とオプションが常に最新の状態に保たれ、Content Dependenciesフィールドの値がこれに影響を与えないようにするためです。

データ ソースが複数のデータ ソース アイテムを返すクエリである場合、Sitecoreはすべてのデータ ソース アイテムに上記を適用します。

この記事を改善するための提案がある場合は、 お知らせください!