Inclusief Edge-zijkanten edge-side-includes
aemcs-cdn-config-adopter@adobe.com
met een beschrijving van uw gebruiksscenario.De snelheid van de levering van inhoud profiteert van agressief caching van pagina's, die door geheim voorgeheugenkopballen met hoge tijd aan levende (TTL) waarden worden bereikt. Dit kan een uitdaging zijn wanneer pagina's dynamische inhoud bevatten, die vaak moet worden vernieuwd of mogelijk helemaal niet in cache kan worden geplaatst. Gelukkig, zijn er strategieën waar de bevattende pagina van HTML met hoge TTL in het voorgeheugen ondergebracht kan worden, die het halen van de meer dynamische inhoudsfragmenten aan een recentere tijd uitstellen, of door cliënt-kant Javascript of bij CDN. De laatste aanpak is een standaard die Edge Side Includes (ESI) wordt genoemd. Deze wordt ondersteund voor sites die worden gerenderd met AEM publicatie. De HTML bevat ESI-tags die de CDN instrueren de weergave van de pagina naar de browser uit te stellen totdat deze de tags evalueert en aanvullende, dynamischere (lagere TTL) inhoud uit de oorspronkelijke cache (of CDN-cache als de TTL niet is verlopen) ophalen.
Sommige gebruiksgevallen waarbij Edge Side Includes handig kan zijn:
- De naam van een eindgebruiker weergeven of andere informatie die uniek is voor een eindgebruiker.
- Een lijst weergeven met recente informatie, zoals nieuwsartikelen of aandelenkoersen.
ESI-syntaxis esi-syntax
De ESI-syntaxis ziet er als volgt uit als een bovenliggende pagina /content/page.html
een fragment bevat content/snippets/mysnippet.html
.
<html>
<head>
<title>My Site</title>
</head>
<body>
<div id="content">
<esi:include src="/content/snippets/mysnippet.html" />
</div>
</body>
</html>
Zie de ESI specificatievoor details.
Overwegingen esi-syntax-considerations
- De volgende ESI-tags worden ondersteund: include, comment, remove.
- ESI-tags worden achtereenvolgens verwerkt in plaats van gelijktijdig op de CDN, zodat veel ESI-tags op een pagina met lage TTL's latentie kunnen toevoegen aan de gebruikerservaring.
- De maximale diepte van ESI: inclusief verwerking is 5.
- De maximale totale ESI: inclusief verwerkingsfragmenten is 256.
Apache-configuratie esi-apache
Als u pagina's met ESI-tags hebt, moet u de volgende eigenschappen in de Apache-configuratie declareren:
<LocationMatch "/parent-pages/*content/page.html">
# disable dispatcher compression
SetEnv no-gzip 1
# enable esi processing
Header set x-aem-esi "on"
# enable edgeCDN compression
Header set x-aem-compress "on"
# typically the main page is cached at the CDN
Header always set Cache-Control "max-age=300"
</LocationMatch>
<LocationMatch "/content/snippets/mysnippet.html">
SetEnv no-gzip 1
# typically the included page is either set to a lower TTL than the parent page, or not cached at all, as these 2 commented declarations show, respectively:
#Header always set Cache-Control "no-cache"
#Header always set Cache-Control "max-age=50"
</LocationMatch>
De gevormde eigenschappen hebben het volgende gedrag:
zowel de ouderpagina als de inbegrepen fragmenten zouden no-gzip aan 1 moeten plaatsen.
dit plaatsen treedt om het even welke compressie met voeten die Apache anders zou kunnen hebben gebruikt, die op de 1} waarden van het verzoek {wordt gebaseerd.
Accept-Encoding
no-gzip
reeks aan 1), kan dit latentie verminderen.als deze kopbal niet wordt geplaatst, wanneer CDN inhoud van de oorsprong niet samengeperste terugwint, zou het inhoud aan de cliënt niet samengeperste, eveneens dienen. Daarom is het nodig deze header in te stellen als
no-gzip
is ingesteld op 1 (vereist voor ESI) en als inhoud die is gecomprimeerd van de CDN naar de browser moet worden verzonden.Dynamisch afspelen opnemen esi-sdi
Terwijl niet vereist, Sling Dynamisch omvat(SDI) kan worden gebruikt om fragmenten te produceren ESI die bij CDN worden geïnterpreteerd.