Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
HTML / CSS - [http header]Cache
Forum - HTML / CSS - [http header]Cache

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 17:57
Giovedì, 26/02/2015
Mi trovo ancora a scrivere per la piccola GUI che sto realizzando per Ethernet shield, oggi parliamo di cache.
Sto cercando di rendere il caricamento dei vari file provenienti da Arduino il più veloce possibile, impresa ardua con l'hardware che mi ritrovo in mano. A questo punto sto cercando di dividere il codice css in piccoli fogli stile indipendenti, so che puo risultare controproducente ma sto cercando di affiancare a questi una conservazione in cache piuttosto duratura, per far cio inserisco questo paramento nell'header di risposta in caso di file css
Codice sorgente - presumibilmente Plain Text

  1. Cache-Control: public; max-age = 2592000



Osservo però da firebug che l'header viene totalmente ignorato, i fogli stile ad ogni aggiornamento della pagina vengono ricaricati da 0, come mai? Mi sto dimenticando qualcosa? In effetti è probabile sono oramai anni che non lavoro più su server apache.
Mi potreste aiutare? Vorrei evitare il caricamento continuo di file che non cambiano mai, anche perché il caricamento attuale della pagina principale avviene in poco meno di 5secondi, un tempo esagerato per il contenuto.

Grazie.


EDIT: Nella request http appare Cache-Control: max-age=0 come mai? e cosa significa quando è il client ad inviare questo parametro?

Ultima modifica effettuata da Roby94 il 26/02/2015 alle 18:00


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 19:52
Giovedì, 26/02/2015
Ciao, piccola premessa: io, apache e php spesso facciamo a botte, sono più propenso ad altre soluzioni.
Detto ciò:

Codice sorgente - presumibilmente Plain Text

  1. Cache-Control: public; max-age = 2592000



Sicuro di quel ";" ?

Codice sorgente - presumibilmente HTML / CSS

  1. cache-control: private, max-age=0, no-cache



Funziona, come risultato ovviamente l'esatto opposto
Magari è solo una svista, magari non dipende da quello...
Prova...:k:

Ultima modifica effettuata da darioza il 26/02/2015 alle 23:36
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:47
Giovedì, 26/02/2015
Quando hai i devtools aperti, solitamente ogni cache viene ignorata. Controlla le impostazioni di Firebug.

Considera inoltre che dividere il tuo CSS in tanti files ha l'effetto opposto di quello che stai cercando di fare; è meglio consolidare (e minificare) i CSS in un solo file, inviato alla prima pagina che l'utente visita, con un caching di qualche giorno, così il browser ha solamente un file da richiedere (invece che multipli). C'è una nuova connessione TCP aperta per ogni file, che è un overhead molto più alto rispetto a trasferire un pò di più bytes in un singolo file.

Cambierei approccio.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 2:09
Domenica, 01/03/2015
Sostituendo il punto e virgola non cambia niente, non so se il browser accetti entrambe le formattazioni, mi sembrerebbe strano ma non si sa mai, in effetti ho visto usare entrambe le punteggiature. Non è semplice verificare la corretta interpretazione del browser visto che non da risultati cosi palesi l'header.

Piero ho verificato firebug è settato per adoperare la cache, per togliere ogni dubbio le verifiche le ho fatte anche senza firebug ma il tempo di caricamento non diminuisce.

Per dividere intendo che le regole css non si trovano piu nella pagina ma in un file CSS cosi da poterlo mettere in cache.


PS darioza, scusa se non ti ho ancora risposto ma sono riuscito a mettermi al pc pochissimo in questi ultimi giorni, ti risponderò presto, te lo prometto.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 19:15
Domenica, 01/03/2015
rispondo al tuo edit
Cache-Control: max-age=0
dice di non tener conto della cache, come nel frammento di codice che ti avevo riportato io

strano in ogni caso come comportamento, hai appurato che viene effettivamente riscaricato?
ed hai provato con valori max-age più piccoli?

P.S.
tranquillo, rispondimi poi con calma, stiamo qui tanto :k:

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 12:56
Lunedì, 02/03/2015
Si si, so cosa significa quella riga ma non capisco perché sia il client ad inviarla, alla fine è proprio lui che si occupa della conservazione della cache, oppure anche il server può predisporre una cache?

Che sia scaricato non ne sono certo, ma sono certo che la richiesta al server venga comunque effettuata una seconda volta, cosa che non dovrebbe accadere se il client effettivamente conservasse una copia della pagina in cache.

Proprio non ne vengo a capo, di sicuro il problema deve essere del server, ma com'è possibile visto che si tratta di una semplice riga di intestazione?!

Edit: Allego l'analisi di firebug, come si può vedere la cache viene usata, ma comunque il browser tenta la connessione e riscarica i file.


Roby94 ha allegato un file: Immagine.jpg (62617 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Roby94 il 02/03/2015 alle 14:37


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:36
Lunedì, 02/03/2015
Quando il server invia i files CSS, viene fornito l'header Last-Modified?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

Testo quotato


13.3.1 Last-Modified Dates

The Last-Modified entity-header field value is often used as a cache validator. In simple terms, a cache entry is considered to be valid if the entity has not been modified since the Last-Modified value.



Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1127
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 19:18
Lunedì, 02/03/2015
Inserito l'header, il browser ora invia a sua volta l'header If-Modified-Since, ma in ogni caso ritenta la connessione, nonostante il termine di validità della cache non sia passato.


La programmazione è arte... fa che i tuoi script siano degni di un museo.
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 20:02
Lunedì, 02/03/2015
Testo quotato


Cache-Control: public; max-age = 2592000



Dovrebbe funzionare di conto suo (per https://developers.google.com/web/fundamentals/performance/ ... ).

Come sai che viene aperta una connessione? Non mi fiderei di Firebug, metti un println ogni volta che il tuo foglio di stile viene richiesto sul server e analizza li.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo