salve, devo realizzare un caching per un sito web già avviato... mi sapreste consigliare qualche buona class di caching già realizzata???
Grazie.
salve, devo realizzare un caching per un sito web già avviato... mi sapreste consigliare qualche buona class di caching già realizzata???
Grazie.
ma il sito com'è organizzato? usa un CMS ad hoc o usa uno dei tanti CMS disponibili gratuitamente pronti all'uso?
è un cms ad hoc... ma visto che è già un bel pò avviato non vorrei fare casini e vorrei usare un qualche class già collaudato.
intanto vedi (se c'è una logica di tipo MVC o similare) se le classi che mappano le tabelle del database hanno una loro cache oppure no, e nel caso implementalo a livello di classi, questo darà già un bel vantaggio ed è anche semplice da realizzare perchè la cache viene invalidata solamente se l'oggetto viene effettivamente modificato
passo successivo sarebbe verificare quali pagine possono essere effettivamente messe in cache, se è meglio fare una cache temporizzata (ovvero viene invalidato il file in cache per quella pagina ad intervalli di tempo regolari) oppure invalidare la cache della pagina quando il relativo oggetto di riferimento viene modificato a sua volta.
Per le pagina dipende da come è organizzato l'output: se viene generato con una serie di print o echo o codice misto html-php (ovvero con codice tipo <?=$title?>) conviene "catturare" tale output con le relative funzioni ( http://www.php.net/manual/en/ref.outcontrol.php ) oppure se bufferizzi l'ouput in una normale variabile php, salvi il contenuto in un file e poi fai print $variabile.
non avevo pensato alle cache del database mi pensavo che si poteva fare solo tramite server.
Cmq io pensavo di impostarla così... visto che le pagine non vengono mai modificate, c'è la funziona ma fino ad oggi nessun utente ha usato questa funziona, e poi vengono eliminate, pensavo di creare la cache della pagina a vita, cioè, senza scadenza. Una volta che l'utente decide di eliminare la pagina allora parto con il delete dal database e delle pagina, in caso di modifica elimino il fila cache e ne faccio generare uno nuovo quando viene caricato la pagina, tanto sarà lo stesso utente a visualizzare per prima la nuova pagina. L'unica cosa che può essere modificato in queste pagine e la pubblicità... ma questa viene richiamata tramite javascript e quindi anche se la pagina è statica non ho problemi a fare cambiamenti.
Il cms è già strutturato con ob_start(); invatti pensavo di catturare l'output come mi hai consigliato tu.
cosa ne pensi?
fare una cache a livello di oggetti che gestiscono il database è sempre consigliabile, anche perchè una pagina potrebbe essere formata da diverse parti che richiedono diverse scadenze
ad esempio, una pagina con l'elenco di news può variare durante il giorno, ma le news no, quindi quando viene aggiunta una nuova news e devi ricreare quella pagina sei costretto a ricaricare anche tutte le altre news dal database, se invece hai una cache anche per gli oggetti che gestiscono il database dovresti solo invalidare la cache della pagina delle news e caricare da zero solamente la nuova news, senza dover richiedere a mysql anche tutte le altre.