Newsgroup: it.comp.www.php
Titolo: Hoomepage troppo carica, datemi un consiglio

Ho realizzato il sito di un fotografo sportivo professionista che ogni
setimana pubblica la proprie foto.
La struttura della home è composta da una serie di queries annidate
fatta in questo modo:
1) recupero tutte le tipologie di gallerie (Reportages, Pubblicazioni,
ecc)
2) per ogni tipologia recupero tutti gli argomenti (Atletica, Ciclismo,
Podismo, ecc)
3) per  ogni argomento recupero il nr di gallerie presenti e la prima
foto dell'ultima galleria inserita
Per ogni Galleria esiste la sua directory (denominata con l'id della
Galleria)  dove le relative foto sono caricate. Queste poi vengono lette
tramite una funzione di filesystem la quale mi recupera la prima foto
presente 
4) c'è poi un'ulteriore area di gallerie che presenta tutti i Portfolio
suddivisi per argomenti e che mostra per ogni Argomento una foto a caso
ad ogni caricamento della pagina
Ho notato che, caricamento della foto a parte, tutte queste queries
rallentano notevolmente il caricamento della pagina, cosa potrei fare
per velocizzare il tutto?
Mi è venuto in mente di scrivere una funzione nell'area di
amministrazione del sito che crei il codice html della pagina, in questo
modo nella home avrei un'unica query che recupera solo questo codice.
E' corretto?
E' il modo migliore?
Avete qualche dritta/consiglio?
Grazie
Max
-- 
http://www.maxori.it

 per velocizzare il tutto?
Utilizza una layer di astrazione tipo ADODb che implementa un sistema
di caching delle query.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 di caching delle query.
Grazie, ora sto provando a creare qualcosa ad-hoc, ma vedrò di studiarmi
un pò di documentazione.
Max
-- 
http://www.maxori.it

 Avete qualche dritta/consiglio?
crea un crontab che ogni x ore genera un array del record e te lo salvi
con serialize($array_immagini) in un db, poi fai la query di quello.
ciao
-- 
e ziocan



Ho risolto, provvisoriamente, con uno script che legge l'HTML con i
risultati delle queries interessate e li inserisce in una tabella
apposita, chiamata cache, del Db.
Nell'amministrazione del sito ho poi inserito un pulsante che
l'amministratore userà per attivare lo script.
In questo modo sarà possibile aggiornare la home "a comando" ogni volta
che l'amministratore ha finito di inserire nuove gallerie.
Max
-- 
http://www.maxori.it

MacMax wrote:

è perfetto, così salvi capra e cavoli.
ciao
-- 
e ziocan

 Max
Potresti anche automatizzare questo passaggio: ogni volta che richiami 
l'homepage confronti il last update con l'attuale (un file di testo, un 
record in db, etc), se non differisce procedi con l'output dell'html, 
altrimenti generi la nuova pagina e poi procedi all'output. L'utente 
"sfortunato" dovrà attendere l'aggiornamento ma hai la sicurezza di 
mostrare sempre l'ultima versione del sito.
	Francesco

 per velocizzare il tutto?
Hai provato a vedere se il collo di bottiglia è dovuto, ad esempio, a
chiusure a riaperture di connessioni al db, a query non ottimizzate o
scritte male?
Se tutte le sottocategorie vengono utilizzate, puoi pensare di evitare
di fare una query per ciascuna categoria e fare una sola query che
carichi tutte le categorie e poi via codice distribuire le
sottocategorie all'interno delle categorie.
Insomma, ci possono essere diverse ragioni per cui il caricamento dei
dati è lento. Se fornisci ulteriori informazioni sull'implementazione
del codice, si può fare un'analisi più dettagliata.
Ciao,
    Fabrizio
--website: 
http://www.negusweb.it
--lightest streaming player: 
http://www.radioconnectsoftware.com

 l'amministratore userà per attivare lo script.
Io lo farei fare a cron.
ciao, f.

 wrote:

Guarda, alla fine i motivi per cui ho scelto di usare questo sistema
sono due:
1) il sito viene aggiornato circa una volta alla settimana, non c'è una
cadenza regolare.
2) Cerco di costruire delle interfacce di amministrazione che siano
ergonomiche, chiare e gradevoli da usare, ed ho notato che a molti piace
avere la possibilità di interagire con i controlli, soprattutto se è la
prima volta che hanno a che fare con un sito dinamico. 
Si divertono proprio!
Max
-- 
http://www.maxori.it