Ottimizzare le prestazioni del sito AEM

Descrizione

Ambiente
Experience Manager

Problema/Sintomi
Questo articolo si concentra su come migliorare le prestazioni del sito. Abbiamo evidenziato 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.

Risoluzione

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 diversi clienti utilizzano o creano librerie che generano un intero livello al di sopra del framework web AEM/Sling. Nota che non si tratta di utilità per specifiche funzionalità nell’interfaccia utente (ad esempio ACS Commons), ma di framework che modificano radicalmente la modalità di implementazione dell’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.

  4. 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 devono essere caricati prima del 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:

        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, sfrutta 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 del sito.

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 o sfrutta 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.:

  1. Tecniche consigliate per query e indicizzazione
  2. Risoluzione dei problemi relativi a query lente



TotalePrevisioni QueryBuilder


Se si utilizza il QueryBuilder dell'AEM e si prevede che la query restituisca molti risultati, assicurarsi sempre di impostare la proprietà guessTotal sulla radice PredicateGroup in quanto ridurrà l'utilizzo di memoria. Per ulteriori informazioni, consulta la documentazione ufficiale: API Query Builder

In questa pagina