AEM-Lösung für das Caching der ESI-Personalisierung mit Client-seitig gerenderten Komponenten

Personalisierte Inhalte verhalten sich möglicherweise nicht wie erwartet, wenn Edge Side Includes (ESI) mit Komponenten verwendet wird, die auf dem Client gerendert werden, anstatt als Server-gerenderte HTML-Fragmente zurückgegeben zu werden. Das Ausrichten der Implementierung an Endpunkten für Server-gerenderte Fragmente für ESI-Anwendungsfälle oder die Verwendung eines Client-seitigen Ansatzes für Komponenten, die Client-gerendert bleiben, kann das Problem beheben.

Beschreibung description

Umgebung

Adobe Experience Manager as a Cloud Service

Problem/Symptome

  • Nach der Implementierung von ESI für personalisierte Inhalte auf Adobe Experience Manager as a Cloud Service-Veröffentlichungsseiten kann es vorkommen, dass Benutzende ein unerwartetes Caching-Verhalten feststellen.
  • Wenn ein anonymer Benutzer den Cache für eine öffentliche Seite erwärmt, kann ein authentifizierter Benutzer später die anonyme Version einer personalisierten Komponente sehen, oder das Gegenteil kann eintreten.
  • Betroffene Komponenten können Elemente wie Kopfzeilen, Abonnementbereiche oder andere Seitenelemente enthalten, die je nach Benutzerkontext variieren können.
  • In den Protokollen oder im Browser wird möglicherweise keine eindeutige Fehlermeldung angezeigt, auch wenn die personalisierte Ausgabe nicht wie erwartet gerendert wird.
  • Sie können das Problem bestätigen, indem Sie dieselbe Seite in anonymen und authentifizierten Sitzungen nach dem Aufwärmen des Caches vergleichen und überprüfen, ob die betroffene Komponente als vom Server gerenderte HTML in der Originalantwort zurückgegeben oder später von Client-seitigem JavaScript gerendert wird.

Lösung resolution

Führen Sie die folgenden Schritte aus, um das Problem zu lösen:

  1. Überprüfen Sie, ob die für die Personalisierung verwendete Komponente von der Herkunft als vom Server gerendertes HTML-Fragment zurückgegeben oder später im Browser von JavaScript gerendert wird.

  2. Wenn Sie ESI benötigen, um personalisierte Inhalte zusammenzustellen, stellen Sie die entsprechende Komponente als ein vom Server gerendertes HTML-Fragment bereit, das separat eingeschlossen werden kann. Aktualisieren Sie Ihre ESI- oder Apache Sling Dynamic Include-Konfiguration so, dass sie auf den vom Server gerenderten Fragmentendpunkt verweist.

  3. Wenn eine Komponente Client-seitig gerendert bleiben muss, verwenden Sie ein Client-seitiges Personalisierungsmuster für diese Komponente, anstatt sich bei ihrer Zusammenstellung auf ESI zu verlassen.

  4. Validieren Sie die aktualisierte Implementierung.

    • Testen Sie die Seite sowohl in anonymen als auch in authentifizierten Sitzungen.
    • Vergewissern Sie sich, dass jede Sitzung die erwartete Version der betroffenen Komponente nach dem Aufwärmen des Cache erhält.
    • Überprüfen Sie, ob die Ursprungsantwort die erwartete Fragmentausgabe für Komponenten enthält, die von ESI verarbeitet werden sollen.

Verwandtes Lesen

recommendation-more-help
experience-cloud-kcs-help-kbarticles