Configurer le cache de formulaires adaptatifs

Un cache est un mécanisme qui permet de raccourcir les temps d’accès aux données, réduire le temps de réponse et améliorer les vitesses d’entrée/sortie (E/S). Le cache de formulaires adaptatifs stocke uniquement le contenu HTML et la structure JSON d’un formulaire adaptatif sans enregistrer les données pré-renseignées. Cela permet de réduire le temps nécessaire au rendu d’un formulaire adaptatif sur le client. Il est conçu spécifiquement pour les formulaires adaptatifs.

Configuration du cache de formulaires adaptatifs sur les instances de création et de publication

  1. Accédez à la page de configuration de la console web AEM à l’adresse https://[server]:[port]/system/console/configMgr.

  2. Cliquez sur la configuration de canal web de communication interactive de formulaire adaptatif pour éditer ses valeurs de configuration.

  3. Dans la boîte de dialogue Modifier les valeurs de configuration, spécifiez le nombre maximal de formulaires ou de documents qu’une instance du serveur AEM Forms peut mettre en cache dans le champ Nombre de formulaires adaptatifs. La valeur par défaut est 100.

    REMARQUE

    Pour désactiver le cache, définissez la valeur du champ Nombre de formulaires adaptatifs sur 0. Le cache est réinitialisé, et tous les formulaires et documents sont supprimés du cache lorsque vous désactivez ou modifiez la configuration du cache.

    Boîte de dialogue de configuration du cache HTML de formulaires adaptatifs

  4. Cliquez sur Enregistrer pour enregistrer la configuration.

Votre environnement est configuré pour utiliser le cache des formulaires adaptatifs et des actifs associés.

(Facultatif) Configurez le cache de formulaire adaptatif à Dispatcher

Vous pouvez également configurer la mise en cache des formulaires adaptatifs à Dispatcher pour une amélioration supplémentaire des performances.

Prérequis

Observations relatives à la mise en cache de formulaires adaptatifs sur un Dispatcher

  • Lors de l’utilisation du cache de formulaires adaptatifs, utilisez l’AEM Dispatcher pour mettre en cache les bibliothèques clientes (CSS et JavaScript) d’un formulaire adaptatif.
  • Lors du développement des composants personnalisés, sur le serveur utilisé pour le développement, gardez le cache de formulaires adaptatifs désactivé.
  • Les URL sans extension ne sont pas mises en cache. Par exemple, les URL avec modèle/content/forms/[folder-structure]/[form-name].html sont mises en cache et la mise en cache ignore les URL avec motif /content/dam/formsanddocument/[folder-name]/<form-name>/jcr:content. Par conséquent, utilisez des URL avec des extensions pour tirer parti des avantages de la mise en cache.
  • Points à prendre en compte pour les formulaires adaptatifs localisés :
    • Utilisez le format d’URL http://host:port/content/forms/af/<afName>.<locale>.html pour demander une version localisée d’un formulaire adaptatif au lieu de http://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
    • Désactivez l’utilisation des paramètres régionaux du navigateur pour les URL au format http://host:port/content/forms/af/<adaptivefName>.html.
    • Lorsque vous utilisez le format d’URL http://host:port/content/forms/af/<adaptivefName>.html et Utiliser les paramètres régionaux du navigateur dans Configuration Manager est désactivé, la version non localisée du formulaire adaptatif est diffusée. La langue non localisée est la langue utilisée lors du développement du formulaire adaptatif. Les paramètres régionaux configurés pour votre navigateur (paramètres régionaux du navigateur) ne sont pas pris en compte et une version non localisée du formulaire adaptatif est diffusée.
    • Lorsque vous utilisez le format d’URL http://host:port/content/forms/af/<adaptivefName>.html et Utiliser les paramètres régionaux du navigateur dans Configuration Manager est activé, une version localisée du formulaire adaptatif est diffusée, le cas échéant. La langue du formulaire adaptatif localisé est basée sur les paramètres régionaux configurés pour votre navigateur (paramètres régionaux du navigateur). Cela peut entraîner la [mise en cache uniquement de la première instance d’un formulaire adaptatif]. Pour éviter que le problème ne se produise sur votre instance, voir Résolution des problèmes.

Activation de la mise en cache sur le Dispatcher

Effectuez les étapes ci-dessous pour activer et configurer la mise en cache de formulaires adaptatifs sur Dispatcher :

  1. Ouvrez l’URL suivante pour chaque instance de publication de votre environnement et activez l’agent de vidage pour les instances de publication de votre environnement :
    http://[server]:[port]]/etc/replication/agents.publish/flush.html

  2. Ajoutez les éléments suivants à votre fichier dispatcher.any :

       /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"
       }
    

    Lorsque vous ajoutez ce qui suit :

    • Un formulaire adaptatif reste en cache jusqu’à ce qu’une version mise à jour du formulaire ne soit pas publiée.

    • Lorsqu’une version plus récente de la ressource référencée dans un formulaire adaptatif est publiée, les formulaires adaptatifs concernés sont automatiquement invalidés. Il existe certaines exceptions à l’invalidation automatique des ressources référencées. Pour contourner les exceptions, voir la section Résolution des problèmes.

  3. Ajoutez le fichier dispatcher.any des règles ci-dessous ou le fichier de règles personnalisées. Il exclut les URL qui ne prennent pas en charge la mise en cache. Par exemple, Communication interactive.

       /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"
       }
    
  4. Ajoutez les paramètres suivants à la liste des paramètres d’URL ignorés :

       /ignoreUrlParams {
       /0001 { /glob "*" /type "deny" }
       # added for AEM forms specific use cases.
       /0003 { /glob "dataRef" /type "allow" }
       }
    

Votre environnement AEM est configuré pour mettre en cache les formulaires adaptatifs. Il met en cache tous les types de formulaires adaptatifs. Si vous devez vérifier les autorisations d’accès utilisateur pour une page avant de diffuser la page mise en cache, voir mise en cache de contenu sécurisé.

Résolution des problèmes

Certains formulaires adaptatifs contenant des images ou des vidéos ne sont pas automatiquement invalidés à partir du cache du Dispatcher.

Problème

Lorsque vous sélectionnez et ajoutez des images ou des vidéos via l’explorateur de ressources à un formulaire adaptatif et que ces images et vidéos sont modifiées dans l’éditeur Ressources, les formulaires adaptatifs contenant ces images ne sont pas automatiquement invalidés à partir du cache du Dispatcher.

Solution

Après avoir publié les images et la vidéo, dépubliez et publiez explicitement les formulaires adaptatifs qui référencent ces ressources.

Seule la première instance d’un formulaire adaptatif est mise en cache

Problème

Lorsque l’URL du formulaire adaptatif ne comporte aucune information de localisation et que l’option Utiliser les paramètres régionaux du navigateur est activée dans Configuration Manager, une version localisée du formulaire adaptatif est diffusée, et seule la première instance du formulaire adaptatif est mise en cache et diffusée à chaque utilisateur suivant.

Solution

Exécutez les étapes suivantes afin de résoudre ce problème :

  1. Ouvrez le fichier conf.d/httpd-dispatcher.conf ou tout autre fichier de configuration configuré pour se charger au moment de l’exécution.

  2. Ajoutez le code suivant dans votre fichier et enregistrez-le. Il s’agit d’un exemple de code que vous pouvez modifier en fonction de votre environnement.

   <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>

Sur cette page