Ottimizzare le prestazioni AEM sito

Descrizione

Questo articolo si concentra su come migliorare le prestazioni del sito.  Evidenziamo vari aspetti delle applicazioni e delle architetture AEM che hanno causato il maggior numero di problemi di prestazioni.  Implementando le ottimizzazioni elencate qui, puoi evitare tali problemi comuni.

Risoluzione



Prestazioni del sito



 


1. Esegui manutenzione regolare.
2. Rendi le chiamate di servizio back-end tolleranti gli errori - vedere articolo per i dettagli.
3. Presta attenzione quando utilizzi i framework dell’interfaccia utente di terze parti - Abbiamo visto diversi clienti che utilizzano o creano librerie che creano un intero livello sopra il AEM / Sling framework web.  Nota che non ci riferiamo a utility per specifiche funzionalità nell’interfaccia utente (ad esempio ACS Commons), ma a framework che modificano radicalmente la modalità di implementazione dell’applicazione in AEM.  Anche se questi framework possono ridurre leggermente i tempi di sviluppo, molte volte abbiamo constatato 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 a fondo e sottoporre a test di stress l’applicazione con traffico realistico.
4. Prestazioni lato client

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

    • Incorpora librerie client per consolidarle in un numero minore di file.
    • Miniatura le librerie.
  • Inserisci inclusioni CSS nel tag head di HTML - questo aiuta a evitare lo sfarfallio e il ridisegno della pagina dopo il caricamento.

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

  • Implementare l’assegnazione di domini - 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 caricate prima del rendering della pagina.  La condivisione dei domini è una soluzione che aiuta a risolvere questo problema.  La condivisione del dominio è il punto in cui includi sul sito file come CSS e JavaScript 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
      
    • Utilizzo ACS Commons - Rewriter di riferimento statico per implementare la condivisione del dominio.

  • 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 sezione Documentazione delle regole di Google PageSpeed per ulteriori indicazioni su come ottimizzare il sito.

  • Vedi 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 di authoring sono presenti centinaia di componenti modificabili singoli caricati in una pagina AEM, questo influisce notevolmente sulle prestazioni dell’interfaccia utente dell’editor.  Durante la progettazione dell’applicazione, preferisci i componenti più specifici del sito e facili da utilizzare per gli editor rispetto ai componenti generici con molti sottocomponenti.
3. Evita di nidificare molti livelli di componenti contenitore (sistema di paragrafi, griglia reattiva, frammenti di esperienza) - Evita di nidificare molti livelli di componenti contenitore.  La nidificazione dei sistemi paragrafo o delle griglie reattive causa la /editor.html per caricare più lentamente.  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 per fare riferimento al contenuto di altre pagine.  Se scegli di utilizzare i frammenti di esperienza, evita di nidificarli o sfrutta mattoni.  I frammenti di esperienza nidificati sono interessati dalle stesse limitazioni di prestazioni.




 

Ottimizzazione della cache



 


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

Vedi articolo per passaggi dettagliati su come ottimizzare la memorizzazione in cache nel sito.




 

Ottimizzare gli indici per le query JCR personalizzate



 


Un'altra ottimizzazione che può essere effettuata per migliorare le prestazioni è quella di configurare e ottimizzare gli indici Oak per le query JCR personalizzate.  Se utilizzi query JCR all’interno dell’applicazione, questa è generalmente un’attività obbligatoria.

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

Tecniche consigliate per query e indicizzazione

Risoluzione dei problemi relativi alle query lente

QueryBuilder guessTotal

Se utilizzi la AEM QueryBuilder e si aspetta che la query restituisca molti risultati, quindi assicurati sempre di impostare il guessTotal nella radice PredicateGroup poiché ridurrà l'utilizzo della memoria.  Vedi la documentazione ufficiale su questo per i dettagli: Query Builder API

In questa pagina