Ottimizzare le prestazioni del sito AEM

Questo articolo si concentra su come migliorare le prestazioni del sito. Sono stati evidenziati i vari aspetti delle applicazioni e delle architetture Adobe Experience Manager (AEM) che hanno causato il maggior numero di problemi di prestazioni. Implementando le ottimizzazioni elencate qui, puoi evitare questi problemi comuni.

Descrizione description

Ambiente

Adobe Experience Manager

Problema/Sintomi

Come ottimizzare le prestazioni del sito AEM?

Risoluzione resolution

Prestazioni del sito

  1. Esegui manutenzione regolare.
  2. Fai in modo che le chiamate del servizio back-end siano a tolleranza di errore - consulta questo articolo per i dettagli.
  3. Presta attenzione quando utilizzi i framework di terze parti per l’interfaccia utente: abbiamo notato che vari clienti utilizzano o creano librerie che generano un intero livello al di sopra del framework web AEM/Sling. Non si tratta di utilità per specifiche funzionalità nell’interfaccia utente (ad esempio ACS Commons), ma di framework che modificano radicalmente il modo in cui si implementa l’applicazione sull’AEM. Anche se questi framework possono ridurre leggermente i tempi di sviluppo, molte volte abbiamo visto che possono avere un impatto negativo sulle prestazioni.
    I framework di terze parti non sono supportati o testati da Adobe. Quando utilizzi o implementi tali framework, assicurati di caricare e sottoporre a test di stress l’applicazione con un traffico realistico.

Prestazioni lato client

  • Utilizzare e ottimizzare le librerie client AEM: le librerie client offrono un modo semplice per centralizzare la gestione e l’ottimizzazione del codice CSS e JavaScript nel sito.

    • Incorpora le librerie client per consolidarle in un numero inferiore di file.
    • Minimizza le librerie.
  • Inserisci inclusioni CSS nel tag intestazione HTML: per evitare lo sfarfallio e il ridisegno della pagina dopo il caricamento.

  • Inserisci inclusioni script JavaScript al termine del tag body o aggiungi attributo script asincrono : consente al browser di caricare i file JavaScript in parallelo mentre la pagina viene sottoposta a rendering.

  • Implementa il partizionamento del dominio: per impostazione predefinita, i browser web limitano il numero massimo di richieste parallele per dominio durante il caricamento della pagina. Questo può causare ritardi nel caricamento della pagina se disponi di molte risorse come CSS, JavaScript e così via. che deve essere caricato prima che venga eseguito il rendering della pagina. Il partizionamento dei domini è una soluzione che aiuta a risolvere questo problema. Il partizionamento del dominio è il luogo in cui includi file come CSS e JavaScript sul sito tramite più sottodomini.

    • Ad esempio:

      code language-none
      script src="//includes1.yoursite.com/etc/clientlibs/test.js"/script
      script src="//includes2.yoursite.com/etc/clientlibs/test2.js"/script
      
    • Utilizzare ACS Commons - Rewriter di riferimento statico per implementare il partizionamento dei domini.

  • Memorizza in cache JavaScript e CSS per lunghi periodi di tempo . Per consentire la memorizzazione in cache di JavaScript e CSS per lunghi periodi di tempo, utilizza ACS Commons - Clientlibs con versione.

  • Consulta la Documentazione sulle regole di Google PageSpeed per ulteriori indicazioni su come ottimizzare il sito.

  • Vedi questo Sessione AEM Gems per ulteriori informazioni sulle ottimizzazioni in loco.

Prestazioni di modifica dell’istanza dell’autore

  1. Esegui manutenzione regolare.
  2. Riduci il totale dei componenti sulla pagina: se in un’istanza dell’autore su una pagina AEM sono presenti centinaia di componenti modificabili, questo incide notevolmente sulle prestazioni dell’interfaccia utente dell’editor. Durante la progettazione dell’applicazione, preferisci componenti specifici del sito e facili da utilizzare per gli editor rispetto a componenti generici con molti sottocomponenti.
  3. Evita di nidificare molti livelli di componenti contenitore (sistema paragrafo, griglia responsive, frammenti di esperienza): evita di nidificare molti livelli di componenti contenitore. La nidificazione dei sistemi paragrafo o delle griglie reattive rallenta il caricamento della pagina /editor.html. Ciò si verifica in particolare quando il sistema paragrafo o la griglia reattiva includono un lungo elenco di contenuti. Invece di nidificare i sistemi paragrafo, progetta l’applicazione in modo che faccia riferimento al contenuto di altre pagine. Se scegli di utilizzare i frammenti di esperienza, evita di nidificarli; in alternativa, utilizza blocchi predefiniti. I frammenti di esperienza nidificati sono soggetti alle stesse limitazioni di prestazioni.

Ottimizzazione della cache

Nell’architettura di un sito AEM comune, la richiesta HTTP passa attraverso più cache prima di raggiungere le istanze di pubblicazione dell’AEM. Uno dei modi più semplici per migliorare le prestazioni del sito è ottimizzarne la capacità di memorizzazione in cache.

Consulta questo articolo per i passaggi dettagliati su come ottimizzare la memorizzazione in cache nel sito.

Ottimizzare gli indici per query JCR personalizzate

Un’altra ottimizzazione che può essere eseguita per migliorare le prestazioni consiste nella configurazione e ottimizzazione degli indici Oak per le query JCR personalizzate. Se utilizzi query JCR all’interno dell’applicazione, in genere si tratta di un’attività obbligatoria.

Consulta la documentazione ufficiale (1 e 2) per informazioni su come implementare gli indici Oak per le query personalizzate dell’applicazione.:

TotalePrevisioni QueryBuilder

Se utilizzi QueryBuilder AEM e prevedi che la query restituisca molti risultati, assicurati sempre di impostare la proprietà guessTotal sulla radice PredicateGroup in quanto riduce l’utilizzo di memoria. Per ulteriori informazioni, consulta la documentazione ufficiale: API Query Builder

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f