Cache interna delle pagine (Internal Page Cache)
Drupal 8 utilizza il modulo Internal Page Cache, raccomandato per siti di piccole e medie dimensioni. Questo modulo core, abilitato per impostazione predefinita, memorizza nella cache le pagine per gli utenti anonimi. Puoi trovarlo in core/modules/page_cache.
Questa funzionalità migliora le prestazioni poiché accelera il funzionamento del sito. Le pagine richieste dagli utenti anonimi vengono salvate al primo accesso e poi riutilizzate; a seconda della configurazione del tuo sito, il miglioramento delle prestazioni può essere significativo.
Per velocizzare il sito anche per gli utenti autenticati, consulta il modulo Dynamic Page Cache.
I siti web che offrono contenuti personalizzati agli utenti anonimi (dinamici o basati sulla sessione, come un carrello acquisti) dovrebbero disattivare il modulo Internal Page Cache. Questo modulo presuppone che le pagine siano identiche per tutti gli utenti anonimi. Tali siti possono comunque utilizzare il modulo Dynamic Page Cache oppure implementare la personalizzazione tramite JavaScript + AJAX.
Configurazione del modulo Internal Page Cache
Nella pagina Prestazioni (admin/config/development/performance) puoi specificare per quanto tempo i browser e i proxy possono memorizzare le pagine nella cache. Non esistono altre impostazioni. Il valore impostato per il tempo massimo di caching delle pagine dai browser e proxy viene utilizzato negli header Cache-Control. Questa impostazione è ignorata dall’Internal Page Cache stesso, che memorizza le pagine fino a quando non diventano non valide, a meno che non abbiano un header Expires.
Confronto con Drupal 7
- Drupal 7 non aveva aggiornamenti istantanei; la cache delle pagine in Drupal 8 viene aggiornata immediatamente quando qualcosa cambia.
- Drupal 7 richiedeva la cancellazione dell’intera cache delle pagine a ogni modifica del contenuto; Drupal 8 utilizza i tag di cache per svuotare solo le pagine memorizzate che dipendono dal contenuto modificato.
- Drupal 7 mostrava spesso pagine obsolete; molti moduli (e persino parti del core di Drupal 7) non riuscivano a svuotare correttamente la cache delle pagine.
- La cache interna delle pagine in Drupal 7 non era abilitata per impostazione predefinita. Molti utenti non sapevano che fosse necessario abilitarla manualmente. Drupal 8 invece abilita automaticamente la cache delle pagine per gli utenti anonimi. Questo è possibile grazie ai tag di cache menzionati nel punto precedente. In Drupal 7, l’abilitazione della cache interna per impostazione predefinita avrebbe causato comportamenti errati (proprio perché non esistevano i tag di cache).