Supporto volontario e collaborativo per Joomla!® in italiano

La gestione della Cache in Joomla 3

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
Informazioni utiliLa "joomla-domanda del giorno" è la seguente: "Quanti di voi sanno cosa è la cache in Joomla e come deve essere impostata per ottenere dei reali vantaggi da essa?"
Molti di quelli che leggeranno l'articolo sapranno già cosa è ed alcuni sapranno anche come utilizzarla al meglio, ma partiremo lo stesso dalla sua definizione.
Da un glossario di Joomla possiamo leggere: 
la cache è un meccanismo di memorizzazione di una parte della pagina web (che chiameremo vista) affinchè al caricamento successivo della pagina non sia necessario interrogare il database dove sono memorizzate le informazioni. 


Già in passato si era parlato della Cache per le vecchie versioni di Joomla, per esempio per capire se è era importante usarla e come fare a rimuovere in automatico i file che crea per la memorizzazione dei dati.

Il core di Joomla attualmente offre tre livelli diversi di "caching": 
  • Page caching;
  • View caching;
  • Module caching.
Per default Joomla non utilizza la cache in nessun contenuto. Se utilizziamo questa funzionalità le viste saranno salvate dentro la cartella cache del nostro sito (se proviamo a navigare le cartelle, per esempio con un client FTP, la possiamo trovare senza grandi difficoltà). 

Joomla genera dei contenuti dinamici, il contenuto "creato" con la navigazione da parte di utente non viene memorizzato in una cache dell'utente (per esempio quella del browser), ma proprio in una cartella del sito e questo significa che, sotto determinate condizioni, è memorizzato per tutti coloro che visiteranno il sito.
Di contrario la cache non viene utilizzata per le attività degli utenti loggati perchè in tal caso il contenuto generato dipende dai permessi e da altri flussi del CMS.

Se stiamo sviluppando o aggiornando il sito è consigliato tenere la cache momentaneamente disabilitata, così ogni modifica fatta può essere vista istantaneamente. Altrimenti si corre il rischio di modificare contenuti, template, ecc... e non visualizzare istantaneamente l'esito di queste modifiche.


Su Joomla 3.x è possibile accedere alle configurazioni dei diversi livelli di cache in tre modi diversi:
  • dalla configurazione globale;
  • dalla gestione dei plugin;
  • dalle impostazioni dei singoli moduli.
Analizziamo adesso i livelli e come impostare la cache nei diversi casi.

Page caching

Attivazione del page cachingSi parla di "Page Caching" quando Joomla prende una copia esatta della pagina che viene visualizzata da un visitatore.
Alla visita successiva, se la copia è salvata, viene visualizzata senza dover eseguire le query sul database necessarie per creare la pagina.

Per abilitare il Page Caching, una volta fatto accesso al pannello di amministrazione dobbiamo andare su Estensioni-->Gestione plugin e cercare (scorrendo oppure utilizzando il pannello di ricerca) la scritta "System - Cache". Una volta cliccato si aprirà una finestra come in figura.


Da qui possiamo scegliere se utilizzare la cache del browser. Cosa significa se attivo questa opzione? In questo caso Joomla invia al browser un header con "304 Not Modified" nel caso la pagina sia stata precedentemente memorizzata nella cache. Se la pagina è stata cambiata rispetto all'ultima visita sarà fatta una richiesta al server per ottenere il contenuto aggiornato.
L'attivazione di questa opzione è realmente necessaria se i visitatori dovessero tornare spesso alle pagine viste. In questo caso il sito risulterebbe più reattivo.
Al contraro, se tipicamente i visitatori non visualizzano più di una volta le pagine (durante la loro sessione di navigazione), questa opzione non avrrebbe nessun vantaggio reale.

View e Module caching

A differenza del Page Caching, il View e il Module Caching gestiscono solo una parte della pagina.

Per impostare queste cache dobbiamo andare su Sistema-->Configurazione Globale-->Sistema
Attivazione caching Su "Impostazioni Cache" ci sono tre voci diverse, come possiamo vedere anche dall'immagine:
  • Cache. Come valore predefinito abbiamo "OFF - Cache disabilitata". Gli altri due valori sono "ON - Cache conservativa" e "ON - Cache progressiva". Mentre quella progressiva memorizza le viste di componenti e moduli di ciascun visitatore unico, la conservativa fornisce lo stesso contenuto memorizzato a tutti i visitatori. Nel caso di caching conservativo abilitato puoi disabilitarlo ai singoli moduli (andando sulle impostazioni di essi), se invece hai abilitato il caching progessivo esso vale per tutte le viste e non è possibile per esempio disabilitarlo sul singolo modulo. Il caching progressivo offre un miglioramento delle prestazioni solo se lo stesso visitatore visita più di una volta la pagina entro la scadenza e il rinnovo della versione memorizzata. Al contrario se abbiamo un sito con contenuti che vengono visti solo una volta avere abilitato la cache progressiva è più uno svantaggio che altro perché ogni volta che viene elaborata la richiesta della pagina è necessario creare e salvare la versione in cache.
  • Gestore cache. I valori possibili sono "File" ed altri alternativi metodi forniti dalla piattaforma server che ospita il sito. Lasciano impostato il valore di default "File" il contenuto della cache sarà scritto in file nella relativa cartella cache di Joomla. Altri metodi possono sfruttate il database o accelleratori PHP (APC, XCache, Zend ecc...).
  • Tempo cache. Indica la durata di una copia nella cache, prima di essere sostituita da una più recente. Si consigliano valori bassi quando le pagine hanno dei contenuti pubblicati che sono aggiornati in poco tempo.

Cache ModuloPer quanto riguarda la memorizzazione nel caso di moduli bisognerebbe abilitare la cache solo se abbiamo contenuti statici. In tal caso il CMS funziona bene con la cache conservativa.
I moduli con contenuti dinamici non dovrebbero essere memorizzati nella cache. Ad ogni modulo è possibile impostare i parametri nelle relative opzioni avanzate. Disattivare la cache quindi a determinati moduli o lasciare le impostazioni globali per mantenere quando settato a livello generale per la cache del sito.

Come potete ben capire se la cache è abilitata, è necessario, per ottimizzare le prestazioni del server, anche eliminare gli eventuali file di cache scaduti.
Per fare questo su Joomla 3.x dobbiamo andare, una volta fatto accesso al pannello di amministrazione, su Sistema-->Pulisci Cache oppure su Elimina cache scaduta.
Mentre nel primo caso fa una pulizia globale dei file di cache, nel secondo caso cancella solo quelli creati prima di un certo istante di tempo.
Vi ricordo che l'operazione di pulizia è un processo a volte lungo, soprattutto se viene fatto di rado, e quindi è consigliato farlo quando c'è meno carico sul server.
E' possibile anche installare dei componenti che vi possono aiutare nella gestione e nella pulizia della cache, li trovate sul sito delle estensioni

Nella maggior parte dei casi abilitare anche solo il Paging Cache è sufficiente.
Si dice che il caching in generale è un "equilibrio tra tempo e spazio" perché riduce il carico del database e i tempi di caricamento delle pagine (fattore tempo) ma nello stesso tempo aumenta l'occupazione di spazio sul disco (fattore spazio).

Il mio consiglio è il seguente: ogni volta che provate a cambiare i parametri delle cache o ad abilitarle, controllate anche il traffico del sito e ogni quanto vengono lette le pagine, così potete rendervi conto se la scelta che avete fatto ha portato a un miglioramento del sito oppure no.

Fra i problemi noti in siti Joomla con la cache attiva c'è quello relativo al conteggio delle visite dei singoli articoli. Essendo questa una caratteristica dinamica non viene più interpretata correttamente se la pagina del singolo articolo è gestita in modo statico dalla cache. Non viene quindi aggiornato nel database l'incremento di visite in modo lineare. Il valore mostrato rischia così di essere molto inferiore a quello reale.

Un'interessante articolo dove mostra l'utilizzo e l'efficacia della cache (anche se parla di Joomla 2.5) utilizzando i diversi livelli lo trovate a questa pagina.

Altre fonti:


CommentaCommenta questo articolo sul forum


Ultima versione di Joomla!®

downloadVer. 3.7.3 Stabile Italiana
Data di rilascio: 04 Luglio 2017
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: