キャッシュは、データへのアクセスにかかる時間を短縮し、遅延を削減して I/O 速度を改善するメカニズムです。アダプティブフォームのキャッシュには、アダプティブフォームのHTMLコンテンツと JSON 構造のみが保存されます。事前入力されたデータは保存されません。 これにより、クライアントサイドのアダプティブフォームのレンダリングの時間を短縮します。特にアダプティブフォーム向けに設計されています。
https://[server]:[port]/system/console/configMgr
の AEM Web コンソール設定マネージャーに移動します。
「アダプティブフォームおよびインタラクティブ通信 Web チャネルの設定」をクリックして、設定値を編集します。
Adobe Analytics の 設定値の編集 ダイアログを開き、AEMの 1 つのインスタンスのフォームまたはドキュメントの最大数を指定します Forms サーバーが アダプティブFormsの数 フィールドに入力します。 デフォルト値は 100 です。
キャッシュを無効にするには、「アダプティブフォームの数」フィールドの値を 0 に設定します。キャッシュ設定を無効にしたり変更したりすると、キャッシュがリセットされ、すべてのフォームとドキュメントがキャッシュから削除されます。
「保存」をクリックして、設定を保存します。
環境は、アダプティブフォームと関連アセットのキャッシュを使用するように設定されています。
また、パフォーマンスを向上させるために、Dispatcher でアダプティブフォームのキャッシュを設定することもできます。
/content/forms/[folder-structure]/[form-name].html
はキャッシュされ、パターンを持つ URL はキャッシュによって無視されます /content/dam/formsanddocument/[folder-name]/<form-name>/jcr:content
. そのため、キャッシュのメリットを活用するには、拡張機能と共に URL を使用してください。http://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
の代わりに http://host:port/content/forms/af/<afName>.<locale>.html
の URL 形式を使用して、アダプティブフォームのローカライズ版をリクエストします。http://host:port/content/forms/af/<adaptivefName>.html
の使用を無効にします。http://host:port/content/forms/af/<adaptivefName>.html
を使用し、設定マネージャーでブラウザーロケールを使用が無効になっている場合、アダプティブフォームの非ローカライズ版が提供されます。非ローカライズ言語とは、アダプティブフォームの開発時に使用される言語です。ブラウザーに対して設定されたロケール(ブラウザーのロケール)は考慮されず、アダプティブフォームの非ローカライズバージョンが提供されます。http://host:port/content/forms/af/<adaptivefName>.html
を使用し、設定マネージャーでブラウザーロケールを使用が有効になっている場合、アダプティブフォームのローカライズ版が提供されます(利用可能な場合)。ローカライズされたアダプティブフォームの言語は、ブラウザーに設定されたロケール(ブラウザーロケール)に基づきます。それは次のようになります。 [アダプティブフォームの最初のインスタンスのみをキャッシュする]. インスタンスで問題が発生しないようにするには、トラブルシューティングを参照してください。Dispatcher 上でアダプティブフォームのキャッシュを有効にして設定するには、以下の手順を実行します。
環境のすべてのパブリッシュインスタンスに対して次の URL を開き、 お使いの環境のパブリッシュインスタンス用のフラッシュエージェントを有効にする:
http://[server]:[port]]/etc/replication/agents.publish/flush.html
/invalidate
{
/0000
{
/glob "*"
/type "deny"
}
/0001
{
# Consider all HTML files stale after an activation.
/glob "*.html"
/type "allow"
}
/0002
{
# Exclude htmls present in AF directories
/glob "/content/forms/**/*.html"
/type "deny"
}
上記を追加すると、以下のようになります。
アダプティブフォームは、更新されたバージョンのフォームが公開されない限り、キャッシュに残ります。
アダプティブフォーム内で参照されている新しいバージョンのリソースが公開されると、影響を受けるアダプティブフォームは自動的に無効化されます。 参照されるリソースの自動無効化には、いくつかの例外があります。例外の回避策については、 トラブルシューティング 」セクションに入力します。
以下のルール dispatcher.any またはカスタムルールファイルを追加します。キャッシュをサポートしない URL は除外されます。例えば、インタラクティブ通信などです。
/0000 {
/glob "*"
/type "allow"
}
## Don't cache csrf login tokens
/0001 {
/glob "/libs/granite/csrf/token.json"
/type "deny"
}
## Don't cache IC - print channel
/0002 {
/glob "/content/forms/**/channels/print.html"
/type "deny"
}
## Don't cache IC - web channel
/0003 {
/glob "/content/forms/**/channels/web.html"
/type "deny"
}
「URL パラメーターを無視」リストに以下のパラメーターを追加します。
/ignoreUrlParams {
/0001 { /glob "*" /type "deny" }
# added for AEM forms specific use cases.
/0003 { /glob "dataRef" /type "allow" }
}
AEM 環境は、アダプティブフォームをキャッシュするように設定されています。すべてのタイプのアダプティブフォームをキャッシュします。キャッシュされたページを配信する前に、ページのユーザーアクセス権限を確認する必要がある場合は、 セキュリティで保護されたコンテンツのキャッシュ.
アセットブラウザーを使用して画像やビデオを選択してアダプティブフォームに追加し、それらの画像やビデオを Assets エディターで編集すると、そのような画像を含むアダプティブフォームは Dispatcher のキャッシュから自動的に無効化されません。
画像とビデオを公開した後、これらのアセットを参照するアダプティブフォームを明示的に非公開にしてから公開してください。
アダプティブフォームの URL にローカリゼーション情報がない場合、および ブラウザーのロケールを使用 configuration manager を有効にすると、アダプティブフォームのローカライズ版が提供されます。 アダプティブフォームの最初のインスタンスのみがキャッシュされ、後続のすべてのユーザーに配信されます。
次の手順を実行して問題を解決します。
conf.d/httpd-dispatcher.conf または実行時に読み込むように設定されたその他の設定ファイルを開きます。
次のコードをファイルに追加して保存します。これはサンプルコードです。環境に合わせて変更してください。
<VirtualHost *:80>
# Set log level high during development / debugging and then turn it down to whatever is appropriate
LogLevel rewrite:trace6
# Start Rewrite Engine
RewriteEngine On
# Handle actual URL convention (just pass through)
RewriteRule "^/content/forms/af/(.*)[.](.*).html$" "/content/forms/af/$1.$2.html" [PT]
# Handle selector based redirection basded on browser language
# The Rewrite Cond(ition) is looking for the Accept-Lanague header and if found takes the first two character which most likely will be the desired language selector.
RewriteCond %{HTTP:Accept-Language} ^(..).*$ [NC]
RewriteRule "^/content/forms/af/(.*).html$" "/content/forms/af/$1.%1.html" [R]
</VirtualHost>