Sommaire
Ricordiamo che questo tutorial è valido esclusivamente fino alla versione SPIP 1.8.3 ed è obsoleto a partire dalla versione SPIP 1.9. È in corso la riscrittura del presente articolo nell’area riservata di questo sito.
È comunque possibile seguire questo tutorial se si omettono i file .php3 e localizzando i file HTML nella cartella squelettes/ che se non presente dovrà essere creata alla radice del sito.
Nelle lezioni precedenti abbiamo cominciato a elaborare dei modelli. Il successo del nostro sito rischia di essere folgorante. Pensiamo ai poveri neuroni del nostro computer. In questa lezione non faremo niente di divertente, e nemmeno di fondamentale. Gli scansafatiche ne approfitteranno per schiacciare un sonnellino al calduccio...
A partire da SPIP 1.9, l’intervallo temporale della cache descritto sotto viene definito nel file HTML del modello, mediante un segnaposto #CACHE
{intervallo}
, per esempio #CACHE{3600}
Riassunto per quelli flemmatici e per quelli impazienti: nei file di chiamata del tipo tutorial.php3, impostate $delais = 3600; invece di 0.
...
Nel momento in cui una pagina viene richiesta a SPIP, esso controlla se, per caso, questa pagina non era già stata generata in precedenza. Se l’URL richiesto è http://miosito.net/tutorial.php3?id_article=12, SPIP guarda nella sua sotto-cartella CACHE/ se questo file esiste e, in caso positivo, confronta la data del file nella cache con il $delais impostato nel file di chiamata tutorial.php3.
Nel nostro esempio noi abbiamo impostato $delais=0; -che causa una rigenerazione sistematica delle pagine ogni volta che il sito viene consultato. Passiamo ora a $delais=3600; (espresso in secondi).
La nostra pagina web verrà rigenerata solo se, quando un visitatore la richiede, la sua versione nella cache risale a oltre un’ora prima (cioè 3600 s.). In caso contrario, SPIP legge semplicemente il contenuto del file nella cache [1], e invia il risultato senza collegarsi al database (eccetto che per inserire un "hit" nelle statistiche).
Come è possibile impostare questi $delais al fine di ottimizzare il rapporto reattività/carico del server? Non vi è una soluzione miracolosa, ma non si deve avere timore di impostare un ritardo di una giornata (cioè, $delais=24*3600;) o anche maggiore per gli articoli e le rubriche. Le pagine di navigazione più importanti possono avere dei $delais più brevi (per esempio, venti minuti o un’ora) se si presume che il vostro sito debba reagire all’approvazione frequente delle nuove brevi e dei siti in syndication... Se il sito è su un server condiviso con altri siti, abbiate rispetto degli altri e non prendete tutto il tempo di calcolo per pagine che cambiano di rado: sarebbe anche più stupido che, sui lunghi articoli o sui sommari, la generazione delle pagine possa prendere qualche secondo, il che rallenterebbe la consultazione delle pagine...
Come forzare un’aggiornamento? Abbiamo appena deciso dei tempi $delais estremamente lunghi quando ci accorgiamo di un erore di ortogràffia in una pagina. Correzione nell’area riservata... Ma come cancellare subito tale obbrobrio che deturpa il nostro sito?
- Nell’area riservata, cliccare su "Vedi on line" avvia la rigenerazione per le pagine corrispondenti a #URL_ARTICLE oppure #URL_RUBRIQUE dell’articolo o della rubrica corrispondente. È il caso più frequente. E se non lo è?
- Nella parte "Salva/Ripristino" dell’area riservata, un pulsante "Svuota la cache" cancella tutti i file nella cache (utile se si fanno molte modifiche e il sito è molto complesso, altrimenti è da evitare).
- Tuttavia, la soluzione più semplice è di chiedere a SPIP, nella home page dell’area riservata, di "inviare un cookie di amministrazione". Questo cookie si incastonerà nel browser e SPIP potrà riconoscervi al momento di inviare la pagina nell’area pubblica del sito: nella parte bassa della pagina apparirà il pulsante "Rigenera la pagina".
Ritorno al contesto: Ritorniamo alla nozione di contesto. Se il modello viene chiamato con un contesto di id_article, di id_rubrique oppure di id_breve, apparirà un altro pulsante quando SPIP individua il cookie: "Modifica l’articolo (o rubrica, o breve)", che porta direttamente sulla pagina corrispondente nell’area riservata. Scusate se è poco...
Ultimi dettagli:
- per ragioni evidenti, il motore di ricerca non causa l’aggiornamento della cache, e le pagine con i forum sono aggiornate quando viene inviato un nuovo contributo.
- la cartella CACHE/ nella struttura ad albero del sito è suddivisa in 16 sotto-cartelle numerate 0, 1, 2... 9, A, B... F, nelle quali i file della cache si distribuiscono quasi casualmente; ciò si definisce "hash della cache" e viene menzionato per amor di completezza.
- i file della cache sono altresì utilizzati quando il database è "down", ciò garantisce il sito contro interruzioni temporanee del server MySQL.