Cache für adaptive Formulare konfigurieren

Eine Cache ist ein Vorgang, um Datenzugriffzeiten zu verkürzen, die Wartezeit zu reduzieren, und die Geschwindigkeit von Eingabe/Ausgabe (I/A) zu verbessern. Cache für adaptive Formulare speichert nur HTML-Inhalte und JSON-Strukturen eines adaptiven Formulars, ohne die vorausgefüllten Daten zu speichern. Dies hilft bei der Verkürzung der zum Rendern eines adaptiven Formulars auf dem Client erforderlichen Zeit. Sie wurde speziell für adaptive Formulare entwickelt.

Cache für adaptive Formulare in Autoren- und Veröffentlichungsinstanzen konfigurieren

  1. Gehen Sie zu AEM Konfigurationsmanager der Web-Konsole unter https://[server]:[port]/system/console/configMgr.

  2. Klicken Sie auf Konfiguration für adaptive Formulare und interaktiver Kommunikationswebkanal, um die Konfigurationswerte zu bearbeiten.

  3. Geben Sie im Dialogfeld Konfigurationswerte bearbeiten die maximale Anzahl von Formularen oder Dokumenten an, die eine Instanz des AEM Forms-Servers im Feld Anzahl adaptiver Forms zwischenspeichern kann. Der Standardwert ist 100.

    HINWEIS

    Um den Cache zu deaktivieren, legen Sie den Wert für die Anzahl adaptiver Formulare auf 0 fest. Der Cache wird zurückgesetzt und alle Formulare und Dokumente werden aus dem Cache entfernt, wenn Sie die Cachekonfiguration deaktivieren oder ändern.

    Dialogfeld für HTML-Cache für adaptive Formulare konfigurieren

  4. Klicken Sie auf Speichern, um die Konfiguration zu speichern.

Ihre Umgebung ist für die Verwendung von Cache-adaptiven Formularen und zugehörigen Assets konfiguriert.

(Optional) Konfigurieren Sie den Cache des adaptiven Formulars beim Dispatcher

Sie können auch das Zwischenspeichern adaptiver Formulare im Dispatcher konfigurieren, um die Leistung zu verbessern.

Voraussetzungen

Überlegungen zum Zwischenspeichern adaptiver Formulare auf einem Dispatcher

  • Verwenden Sie bei Verwendung des Cache für adaptive Formulare die AEM Dispatcher, um Client-Bibliotheken (CSS und JavaScript) eines adaptiven Formulars zwischenzuspeichern.
  • Beim Entwickeln der benutzerdefinierten Komponenten muss auf dem für die Entwicklung verwendeten Server der Cache für adaptive Formulare deaktiviert bleiben.
  • URLs ohne Erweiterung werden nicht zwischengespeichert. Beispielsweise werden URLs mit dem Muster pattern/content/forms/[folder-structure]/[form-name].html zwischengespeichert und beim Zwischenspeichern werden URLs mit dem Muster /content/dam/formsanddocument/[folder-name]/<form-name>/jcr:content ignoriert. Verwenden Sie daher URLs mit Erweiterungen, um die Vorteile des Caching zu nutzen.
  • Überlegungen zu lokalisierten adaptiven Formularen:
    • Verwenden Sie das URL-Format http://host:port/content/forms/af/<afName>.<locale>.html , um anstelle von http://host:port/content/forms/af/afName.html?afAcceptLang=<locale> eine lokalisierte Version eines adaptiven Formulars anzufordern.
    • Deaktivieren Sie die Verwendung des Browser- Gebietsschemas für URLs mit dem Format http://host:port/content/forms/af/<adaptivefName>.html.
    • Wenn Sie das URL-Format http://host:port/content/forms/af/<adaptivefName>.html verwenden und Browsergebietsschema im Konfigurationsmanager deaktiviert ist, wird die nicht lokalisierte Version des adaptiven Formulars bereitgestellt. Die nicht lokalisierte Sprache ist die Sprache, die bei der Entwicklung des adaptiven Formulars verwendet wird. Das für Ihren Browser konfigurierte Gebietsschema (Browser-Gebietsschema) wird nicht berücksichtigt und eine nicht lokalisierte Version des adaptiven Formulars wird bereitgestellt.
    • Wenn Sie das URL-Format http://host:port/content/forms/af/<adaptivefName>.html und Use Browser Locale im Configuration Manager verwenden, wird eine lokalisierte Version des adaptiven Formulars bereitgestellt, sofern verfügbar. Die Sprache des lokalisierten adaptiven Formulars basiert auf dem Gebietsschema, das für Ihren Browser konfiguriert ist (Browsergebietsschema). Dies kann dazu führen, dass [nur die erste Instanz eines adaptiven Formulars] zwischengespeichert wird. Um zu verhindern, dass das Problem auf Ihrer Instanz auftritt, lesen Sie Fehlerbehebung.

Zwischenspeicherung beim Dispatcher aktivieren

Führen Sie die folgenden Schritte aus, um das Zwischenspeichern adaptiver Formulare in Dispatcher zu aktivieren und zu konfigurieren:

  1. Öffnen Sie die folgende URL für jede Veröffentlichungsinstanz Ihrer Umgebung und aktivieren Sie den Flush-Agenten für Veröffentlichungsinstanzen Ihrer Umgebung:
    http://[server]:[port]]/etc/replication/agents.publish/flush.html

  2. Fügen Sie der Datei "dispatcher.any"Folgendes hinzu:

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

    Wenn Sie die oben genannten Elemente hinzufügen:

    • Ein adaptives Formular bleibt im Cache, bis eine aktualisierte Version des Formulars nicht veröffentlicht wird.

    • Wenn eine neuere Version der Ressource veröffentlicht wird, auf die in einem adaptiven Formular verwiesen wird, werden die betroffenen adaptiven Formulare automatisch invalidiert. Es gibt einige Ausnahmen für die automatische Invalidierung referenzierter Ressourcen. Eine Problemumgehung für Ausnahmen finden Sie im Abschnitt Fehlerbehebung .

  3. Fügen Sie die folgende Regeldatei "dispatcher.any"oder eine benutzerdefinierte Regeldatei hinzu. Er schließt die URLs aus, die keine Zwischenspeicherung unterstützen. Zum Beispiel interaktive Kommunikation.

       /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. Fügen Sie der Liste mit den URL-Parametern ignorieren die folgenden Parameter hinzu:

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

Ihre AEM-Umgebung ist so konfiguriert, dass sie adaptive Formulare zwischenspeichert. Es werden alle Arten adaptiver Formulare zwischengespeichert. Wenn Sie die Benutzerzugriffsberechtigungen für eine Seite überprüfen müssen, bevor Sie die zwischengespeicherte Seite bereitstellen, finden Sie weitere Informationen unter Zwischenspeichern gesicherter Inhalte.

Fehlerbehebung

Einige adaptive Formulare, die Bilder oder Videos enthalten, werden nicht automatisch aus dem Dispatcher-Cache invalidiert

Problem

Wenn Sie Bilder oder Videos über den Asset-Browser auswählen und zu einem adaptiven Formular hinzufügen und diese Bilder und Videos im Assets-Editor bearbeitet werden, werden adaptive Formulare, die solche Bilder enthalten, nicht automatisch aus dem Dispatcher-Cache invalidiert.

Lösung

Machen Sie nach dem Veröffentlichen der Bilder und Videos die Veröffentlichung der adaptiven Formulare, die auf diese Assets verweisen, explizit rückgängig und veröffentlichen Sie sie.

Nur die erste Instanz eines adaptiven Formulars wird zwischengespeichert

Problem

Wenn die URL des adaptiven Formulars keine Lokalisierungsinformationen enthält und Use Browser Locale im Configuration Manager aktiviert ist, wird eine lokalisierte Version des adaptiven Formulars bereitgestellt und nur die erste Instanz des adaptiven Formulars wird zwischengespeichert und an jeden nachfolgenden Benutzer gesendet.

Lösung

Führen Sie zur Behebung dieses Problems folgende Schritte durch:

  1. Öffnen Sie die Datei "conf.d/httpd-dispatcher.conf"oder eine andere Konfigurationsdatei, die zum Laden zur Laufzeit konfiguriert ist.

  2. Fügen Sie den folgenden Code zu Ihrer Datei hinzu und speichern Sie sie. Es handelt sich dabei um einen Beispielcode, der es an Ihre Umgebung anpasst.

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

Auf dieser Seite