2012-07-06 15 views
5

Pasando por un tutorial sobre la creación de una aplicación web, se recomienda anexar SIEMPRE una cadena de consulta "? V = 1" a todos los archivos .css y .js para evitar el almacenamiento en caché.¿Al agregar una cadena de consulta a todos los archivos .js y .css para evitar el almacenamiento en caché?

¿Es esta una 'mejor práctica'?

¿La cadena de consulta solo debe utilizarse durante el desarrollo de producción?

+1

¿por qué quiere evitar el almacenamiento en caché? ¿no desea hacer que su aplicación sea más rápida? –

+0

Un sitio de producción es lo contrario de un sitio de desarrollo. ¿Qué se entiende por "producción-desarrollo"? – feeela

+0

Trabajo para una empresa y desarrollamos un sitio de automóviles con tráfico masivo. Usamos la nube de Amazon S3 para el almacenamiento en caché. Para el entorno de producción, quiere que se almacene en caché especialmente si tiene mucho tráfico – Huangism

Respuesta

1

Creo que esto está muy bien, pero en lo que se refiere a la mejor práctica es muy subjetiva.

El CMS más popular y más utilizado utiliza este método, por lo que considero que es el camino a seguir.

Lo que la gente no entiende es que este método no es la forma más sencilla de indicar a los navegadores que este archivo se puede almacenar en caché, sino que se recatea solo cuando cambia la versión.

Respuesta corta a la primera pregunta, .

En cuanto a la segunda pregunta "producción-desarrollo" es un oxímoron. ¿Cuál es su producción o desarrollo?

+0

significado desarrollo –

+0

El para responder a la pregunta, sí. El desarrollo debería usar el control de versiones por los mismos motivos que la producción debería. – iambriansreed

1

Si estás haciendo algo del lado del servidor, es muy fácil de prevenir el almacenamiento en caché de archivos cuando sus cambios:

PHP:

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

Node.JS

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

Este agrega la marca de tiempo modificada al archivo, por lo que solo evitará el almacenamiento en caché cuando se haya modificado el archivo.

+0

Creo que también deberías mencionar una forma de hacer que ese archivo funcione, ya sea porque cambias el nombre del archivo manualmente o haces algo como esto: http://derek.io/blog/2009/auto-versioning-javascript-and- css-files/ – mcdado

+0

Para eso es el signo de interrogación. Todo, desde el signo de interrogación en adelante, no es parte del nombre del archivo, es la [cadena de consulta] (http://en.wikipedia.org/wiki/Query_string). En general, el servidor simplemente lo ignorará. –

+0

Lo siento, no vi eso. Me puse al día con lo que leí en ese enlace y cuando tropecé con tu respuesta, lo rocé y me sentí obligado a señalarlo. ;) – mcdado

Cuestiones relacionadas