---
title: "ヘッドレスサーバーサイドレンダリングモードでのキャッシュ"
slug: "caching-in-headless-server-side-rendering-mode"
abstract: "ヘッドレスサーバーサイドレンダリングモードでのJSSアプリケーションに対する最適化推奨事項"
---
# ヘッドレスサーバーサイドレンダリングモードでのキャッシュ

サーバー側でレンダリングされたJSSアプリケーションのヘッドレスモードが不振な場合、以下の対応が可能です。

-   Sitecoreで出力キャッシュを有効にしてレイアウトサービス内でJSONフラグメントをキャッシュし、レイアウトサービスのスケールが向上し、レンダリングエンジンの最大スループットを向上させます。これはサーバー側のJavaScriptレンダリングに必要なCPUサイクルには影響しません。
    
    レイアウトサービスの出力キャッシュは、Sitecoreのレンダリングレベルでキャッシュをオンにすることで有効化されます。ガイダンスについては、「レイアウトサービスのための出力キャッシュの実装」を参照してください。
    
    追加のキャッシュは、ヘッドレスアーキテクチャに応じてレンダリングホスト、CDN、またはアプリケーションランタイムでオプションで実装可能です。
    
    Content DeliveryおよびContent Managementの文脈でのキャッシュに関するガイダンスについては、「Configuring Caching」を参照してください。
    
-   JavaScriptレイヤーでキャッシュを実装します。例えば、以下のようにできます:
    
    -   Nodeサーバーにメモリキャッシュを追加して、ルート用のJSONを保存し、再利用します。
    -   Nodeサーバーにメモリキャッシュを追加し、全ページキャッシュが許容される状況ではルート全体のHTML出力(全か無かのキャッシュ)を保存します。
    -   ルートや保存を定期的にNodeメモリに動的にプリレンダリングします。
    -   プログレッシブなウェブアプリケーションを導入する場合は、サービスワーカーやブラウザキャッシュ戦略を活用しましょう。
    
    > !注ページがサーバーサイドでレンダリングされる場合、Nodeはページ全体を個別のレンダリングではなく、一つのHTMLブロックとしてレンダリングします。
    
-   キャッシュミドルウェアを削除またはカスタマイズしてください。もしサーバーサイドでJSSアプリケーションをsitecore-jss-proxyサンプルでレンダリングしている場合、アプリケーションはcacheMiddleware.jsで実装されたノードレベルの出力キャッシュを使用しています。このミドルウェアはアプリケーション起動時に適用されます。
    
    > !注ノードレベルの出力キャッシュにはいくつかの制限があります:
    > 
    > -   Security - 異なる役割を持つユーザーが同じ出力を見ることがあります。ユーザー識別子キーをキャッシュに追加するためにcacheMiddleware.jsをカスタマイズする必要があります。
    >     
    > -   出力キャッシュを使用するとパーソナライズに影響が出ることがあります。必要に応じてcacheMiddleware.jsファイルをカスタマイズしてください。
    >     
    > -   追跡は機能しません。
    >