2012-07-06 6 views
5

Passando attraverso un tutorial sulla creazione di un'app Web ed è stato consigliato SEMPRE aggiungere una stringa di query "? V = 1" a tutti i file .css e .js per impedire la memorizzazione nella cache.Aggiunta di stringa di query a tutti i file .js e .css per impedire la memorizzazione nella cache?

È una "best practice"?

La stringa di query deve essere utilizzata solo durante lo sviluppo della produzione?

+1

perché vuoi evitare il caching? non vuoi rendere più veloce la tua app –

+0

Un sito di produzione è il contrario di un sito di sviluppo. Cosa si intende per "produzione-sviluppo"? – feeela

+0

Lavoro per un'azienda e sviluppiamo un sito automobilistico con un traffico enorme. Utilizziamo il cloud Amazon S3 per il caching. Per l'ambiente di produzione si desidera memorizzarlo nella cache specialmente se si ha molto traffico – Huangism

risposta

1

Penso che questo va bene, ma per quanto riguarda le migliori prassi è preoccupato che è veramente soggettiva.

Il CMS più popolare e più utilizzato utilizza questo metodo, quindi lo considero la strada da percorrere.

Ciò che le persone non capiscono è che questo metodo non è il modo più semplice per segnalare ai browser che questo file può essere memorizzato nella cache ma viene inserito solo quando la versione cambia.

Risposta breve alla prima domanda, .

Per quanto riguarda la seconda domanda "produzione-sviluppo" è un ossimoro. Qual è la produzione o lo sviluppo?

+0

significava sviluppo –

+0

Il per rispondere alla domanda, sì. Lo sviluppo dovrebbe utilizzare il controllo delle versioni per gli stessi motivi che dovrebbe essere la produzione. – iambriansreed

1

Se stai facendo qualcosa sul lato server, è molto facile per evitare la memorizzazione nella cache per quando le modifiche di file:

PHP:

<script src="<?= $file.’?’.filemtime($file); ?>"> 

Node.JS

res.write('<script src="' + file + '?' + new Date(fs.statSync(file).mtime).getTime()); 

Questo aggiunge il timestamp modificato al file, quindi impedirà il caching solo quando il file è stato modificato.

+0

Penso che dovresti menzionare anche un modo per far funzionare quel file, perché o modifichi il nome del file manualmente o fai qualcosa del genere: http://derek.io/blog/2009/auto-versioning-javascript-and- css-files/ – mcdado

+0

Ecco a cosa serve il punto interrogativo. Tutto dal punto interrogativo in poi non fa parte del nome del file, è il [querystring] (http://en.wikipedia.org/wiki/Query_string). Generalmente, il server lo ignorerà. –

+0

Scusa, non l'ho visto. Sono stato catturato da ciò che ho letto in quel link e quando sono incappato nella tua risposta l'ho sfiorato, e mi sono sentito in dovere di indicarlo. ;) – mcdado

Problemi correlati