Le viste sono memorizzate nella cache tramite i principali meccanismi di memorizzazione nella cache o devo impostare la memorizzazione nella cache direttamente in ciascuna vista?


23

Vedo che ci sono impostazioni della cache in ciascuna delle mie viste. Devo impostare questi o i meccanismi di memorizzazione nella cache principale in / admin / config / development / performance fanno automaticamente parte di questo e queste "impostazioni extra" nelle viste sono se voglio sovrascrivere il comportamento di memorizzazione nella cache predefinito di drupal core?

inserisci qui la descrizione dell'immagine


Sono curioso di questa domanda esatta. Le impostazioni della cache specifiche di Views hanno la precedenza sulle impostazioni di memorizzazione nella cache delle prestazioni di Drupal Core? Logicamente, penserei che sarebbe il caso, ma ciò non può essere necessariamente ipotizzato.
David Csonka,

Ho iniziato una taglia per questo, perché mi piacerebbe davvero capirlo meglio.
David Csonka,

Risposte:


38

COSA: la memorizzazione nella cache delle prestazioni di base memorizza e serve l'intera pagina di rendering con un ID cache dell'URL. La memorizzazione nella cache delle viste va oltre questo per memorizzare nella cache solo l'output della vista.

PERCHÉ: è ottimo per gli utenti che hanno effettuato l'accesso; altri blocchi nella pagina potrebbero essere più dinamici ma la vista non deve eseguire una query ogni volta per ogni utente ... scade solo l'utente occasionale che genera la cache della pagina alla scadenza della cache.

IMPOSTAZIONI: Permettere all'output di rendering di essere più fresco della query è utile per cose come contrassegnare il contenuto come nuovo, altrimenti abbinarlo.

GRANDE FOTO: Drupal serve la pagina in modo dinamico, usando un server per creare pagine in PHP e accedere a un database (o cache in memoria). Ciò consente funzionalità straordinarie e velocità dell'editor dei contenuti ... ma il compromesso deve comprendere la cache e farlo nel modo giusto.

MODULI!

C'è anche un adorabile modulo di cache dei contenuti di Views che cancella la cache delle viste sulla modifica dei contenuti. Se si desidera andare oltre, è possibile che si desideri controllare anche le azioni della cache , si consiglia alle regole di perfezionare questo.

Inoltre, Blockcache Alter ti consente di impostare le opzioni di memorizzazione nella cache "per ruolo", pagina, utente, ecc. Per ciascun blocco sul tuo sito.

È inoltre possibile aggiungere Gestione pagine e pannelli . Ciò ti consente di fare cose interessanti come impostare la cache "per utente", "per ruolo" o una serie di altre configurazioni molto utili. Anche se evito personalmente i pannelli.

DOCUMENTAZIONE: per la memorizzazione nella cache e le prestazioni in generale, consultare la pagina Drupal.org .


Questa risposta è davvero buona. Up-votato. Ho aggiunto una sezione su Gestione pagine e pannelli, e ora la risposta potrebbe essere per lo più completa.
Letharion,

È necessario abilitare il "caching a blocchi" delle prestazioni principali affinché la cache specifica di Views funzioni?
David Csonka,

Grazie per aver aggiunto un po 'di Page Manager / Pannelli - perché dopo aver aggiunto la generosità per questo mi sono reso conto che ero anche curioso di memorizzare nella cache dei Mini-pannelli. Mi chiedevo se il "caching dei blocchi" di Performance Core ha la precedenza o era necessario che fosse abilitato affinché i "Mini caching semplici" fossero efficaci.
David Csonka,

1
La memorizzazione nella cache dei blocchi memorizzerebbe effettivamente l'output del blocco indipendentemente dalle impostazioni di memorizzazione nella cache delle viste ... come la cache della pagina. Se hai una durata della cache della pagina di disconnessione di 12 ore, la cache della vista non ha importanza perché quelle pagine non vengono nuovamente visualizzate, ma vengono semplicemente pubblicate dalla cache.
doublejosh

1
D'altro canto, se abilito la memorizzazione nella cache di Core Block, Drupal imporrà le stesse condizioni di memorizzazione nella cache su tutti i miei blocchi in tutto il mio sito, giusto? Poiché la memorizzazione nella cache di Core Drupal Block ha la massima priorità rispetto alle impostazioni di memorizzazione nella cache di Views Block? Sembra uno scenario valido solo se non si dispone di contenuti che potrebbero dover essere aggiornati su una base coerente.
David Csonka,

4

Views utilizza le API della cache di Drupal ma crea una propria cache non correlata alla normale cache di pagina / blocco di Drupal.

Views memorizza nella cache la definizione della vista stessa insieme alla stessa vista renderizzata. La vista renderizzata può essere memorizzata nella cache in due modi: il risultato della query o l'HTML effettivo della vista. Normalmente si desidera memorizzare nella cache l'HTML in uscita poiché è il più efficace in termini di prestazioni. In alcuni casi in cui si desidera modificare l'output in base all'utente connesso, anche la memorizzazione nella cache della query può essere abbastanza efficace.

Le tabelle utilizzate da Views per l'archiviazione della cache sono:

  • cache_views
  • cache_views_data

Quindi, posso disabilitare l'impostazione di memorizzazione nella cache di Drupal Core Block su admin / config / development / performance, ma abilitare individualmente le cache dei blocchi di visualizzazione di Visualizzazioni individuali e far funzionare ancora quelle cache dei blocchi di Views?
David Csonka,

1
@DavidCsonka Sì, puoi farlo. La memorizzazione nella cache del blocco sarebbe più efficace della memorizzazione nella cache della vista, ma solo con un piccolo margine.
googletorp

Ah, è buono a sapersi. Ma usare solo le impostazioni di memorizzazione nella cache di Views mi darebbe un controllo più preciso su come viene memorizzato nella cache il blocco Views, giusto? Se uso invece il Core Block Caching, in pratica impone un set di impostazioni di cache su ogni blocco del mio sito? Corretta?
David Csonka,

1
La memorizzazione nella cache delle viste (blocco o pagina) consente di controllare la memorizzazione nella cache della serie di risultati. La memorizzazione nella cache dei blocchi riguarda l'output del blocco completo. Sì, la memorizzazione nella cache dei blocchi core è un'impostazione a livello di sito, ma è possibile utilizzare Alter cache cache per modificarla in modo molto granulare per blocco.
doublejosh

3
@doublejosh In Drupal 7 puoi definire come dovrebbe funzionare la cache a blocchi, a livello di sito, per ruolo, per pagina, pagina utente sono le opzioni che credo. Dal momento che sta memorizzando nella cache a un livello superiore, è più efficace in termini di prestazioni.
googletorp

3

È ora disponibile un modulo interessante chiamato viste cache bullo che memorizza automaticamente nella cache tutte le viste (risultati della query e output), ad eccezione delle viste con moduli esposti. Il modulo consente inoltre di escludere manualmente le viste dalla sua memorizzazione nella cache. Ciò rende possibile impostare la memorizzazione nella cache per tutte le viste (tranne quelle escluse) da un punto centrale.


2

Drupal 7 fornisce la memorizzazione nella cache della pagina, tuttavia la memorizzazione nella cache della pagina funziona solo per utenti anonimi e non memorizza nella cache le visualizzazioni

La memorizzazione nella cache delle viste tuttavia funziona sia per gli utenti anonimi che per quelli connessi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.