2008-11-14 13 views
130

Durante el desarrollo, tengo que "borrar el caché" en Firefox todo el tiempo para hacer que use la última versión de los archivos de JavaScript.¿Cómo desactivar el almacenamiento en caché en Firefox?

¿Hay algún tipo de configuración (about: config) para desactivar completamente el almacenamiento en caché de los archivos de JavaScript? O, si no, ¿para todos los archivos?

Respuesta

217

Enter "about: config" en la barra de direcciones de Firefox y establecer:

browser.cache.disk.enable = false 
browser.cache.memory.enable = false 

Si el desarrollo a nivel local, o el uso de un nuevo atributo manifiesto de HTML5 puede que tenga que configurar también el siguiente en about: config -

browser.cache.offline.enable = false 
+0

¿qué quiere decir entrar sobre: ​​configuración y establecer. ¿Quiere decir literalmente pegar "about: config network.http.use-cache = false" en la barra de direcciones? – PositiveGuy

+1

@CoffeeAddict, escribe "about: config" en la barra de direcciones. Desde allí puede buscar la "red.http configuración ".use-cache" y cambiar su valor a falso –

+0

lo tengo, muchas gracias. – PositiveGuy

12

Ha intentado utilizar CTRL - F5 para actualizar la página?

+5

Realmente tengo dudas de que esto funcione de manera confiable, al menos en presencia de iframes y conjuntos de marcos. – Thilo

+2

correctos, no siempre volverá a cargar el JS/CSS en un iframe, pero en Firefox al menos puede sacar ese fotograma en una nueva pestaña y volver a cargar allí. – scunliffe

+4

Ctrl-F5 no funciona de manera confiable. – Haozhun

3

puede utilizar CTRL - F5 para recargar sin pasar por el caché.

Puede configurar las preferencias de Firefox no utilizar la caché

network.http.use-cache = false 

Puede que la configuración del servidor web para enviar un no-cache/Expira cabeceras/Cache-Control para los archivos js.

Aquí hay un example para el servidor web apache.

+0

es ese shift-f5 o ctrl-f5? – Thilo

+0

+1 para el enlace de Apache – Pascal

3

La mejor estrategia es diseñar su sitio para construir una URL única para sus archivos JS, que se restablece cada vez que hay un cambio. De esta forma, se almacena en la memoria caché cuando no ha habido cambios, pero se vuelve a cargar inmediatamente cuando se produce algún cambio.

Tendría que ajustar sus herramientas de entorno específicas, pero si está utilizando PHP/Apache, aquí hay una gran solución tanto para usted como para los usuarios finales.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/

7

Si está trabajando con el código del lado del servidor que podría generar un número aleatorio y lo añaden al final del src de la siguiente manera ....

src = "yourJavascriptFile. js? randomNumber = 434534 "

con el randomNumber que se genera aleatoriamente cada vez.

+0

Esta es la única solución que me ha funcionado además de borrar el caché del navegador manualmente cada vez que actualizo. – Curtis

61

El Web Developer Toolbar tiene una opción para desactivar el almacenamiento en caché, lo que hace que sea muy fácil activarlo y desactivarlo cuando lo necesite.

+1

CTRL-F5 o presionando la tecla Mayús mientras hago clic en el botón Volver a cargar es lo que hice en el pasado, pero la característica "Deshabilitar la memoria caché" de la barra de herramientas del desarrollador web es una excelente manera de hacerlo. No tiene que deshabilitar por completo la memoria caché de Firefox de esa manera. –

+1

Sin embargo, debe recordar haber habilitado la caché después de la prueba. ;) – neurolabs

+1

@Shanimal, Funciona para mí en 14.0.1, es posible que desee desinstalar/reinstalar o algo así. – Lucas

1

utilizo CTRL - SHIFT - BORRAR que activa la función de privacidad, lo que le permite borrar la caché, restablecer las cookies, etc, todo a la vez. Incluso puede configurarlo para que simplemente LO HAGA, en lugar de abrir un cuadro de diálogo que le pide que confirme.

4

Sé que estoy resucitando una antigua pregunta, pero hoy estaba tratando de resolver este problema y tengo una solución alternativa. Alternar el almacenamiento en caché cuando quiero probar no era realmente aceptable para mí, y como otros mencionaron, la actualización (ctrl + shift + r) no siempre funciona.

En cambio, he optado por poner el siguiente en mi archivo vhost.conf (también se puede hacer en .htaccess) en mi entorno de desarrollo:

<FilesMatch "\.(js|css)$"> 
FileETag None 
<IfModule mod_headers.c> 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</IfModule> 
</FilesMatch> 

En mi entorno de desarrollo, esto asegura que js y css siempre se recuperan Además, no afecta el resto de mi navegación, y también funciona para todos los navegadores, por lo que las pruebas en Chrome/ie, etc. también son fáciles.

encontrado el fragmento de aquí, algunos otros trucos útil apache, así: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

para asegurarse de que mis clientes ven siempre la versión más reciente de la producción, incrementamos la cadena de consulta en el js incluir en cada actualización, es decir,

jquery.somefile.js?v=0.5 

Esto obliga a los navegadores de mis clientes para actualizar su caché local cuando ven a una nueva cadena de consulta, pero luego se almacena en caché la nueva copia hasta que el archivo se actualiza de nuevo

0

Después de 2 horas de navegación para v alternativas arios, esto es algo que funcionó para mí.

Mi requisito fue deshabilitar el almacenamiento en caché de archivos js y css en mi aplicación web segura de primavera. Pero al mismo tiempo el almacenamiento en caché de estos archivos "dentro" de una sesión en particular.

Pasar una identificación única con cada solicitud es uno de los enfoques aconsejados.

Y esto es lo que hice: - En lugar de

<script language="javascript" src="js/home.js"></script> 

que utilizan

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script> 

Cualquier contras en el enfoque anterior son bienvenidos. Temas de seguridad ?

1

Existen ventajas y desventajas en las dos últimas soluciones publicadas, pero ambas son excelentes soluciones de IMHO.

  1. Puede que desee o no que su ID de sesión esté incrustado en su url así para una mayor seguridad. Pero en el desarrollo eso no debería importar, pero ¿qué ocurre si te olvidas de eliminarlo? ¿Eso realmente funciona? ¿No necesitarías algo así como un generador de números secuencial (conteo de aciertos almacenado en la sesión, o tal vez solo si 1 entonces 0, si 0 luego 1)?

  2. Agregar una identificación de sesión (o cualquier secuenciador) significa que debe recordar agregarla a cada recurso que no desea almacenar en la memoria caché. Por un lado, eso es mejor porque puedes simplemente incluir tu identificación de sesión con solo ese recurso que estás desarrollando y probando activamente. Por otro lado, significa que tienes que hacer eso y debes recordar eliminar eso para la producción.

  3. La modificación del archivo vhost.conf o .htaccess hace el truco muy bien sin la necesidad de recordar agregar y eliminar la identificación de la sesión. Pero la desventaja es que el rendimiento de todos los recursos de js y css se verá afectado, y si tienes archivos de gran tamaño, eso va a ralentizarte.

Ambos parecen soluciones excelentes y elegantes, según sus necesidades.

10

No hay una opción específica para deshabilitar el almacenamiento en caché solo para JavaScript, deberá deshabilitar el almacenamiento en caché por completo.

FireBug tiene una opción para deshabilitar la memoria caché del navegador en el menú desplegable de la pestaña Red.

1

En las versiones superiores de Firefox, como Nightly, hay una opción llamada "deshabilitar el caché", puedes encontrarla haciendo clic en el engranaje. Y esa opción solo funciona en la sesión actual, lo que significa que cuando cierras el inspector y lo reinicias, tienes que volver a verificarlo si quieres que la captura se deshabilite.

+0

Ojalá hubiera una manera de desactivar el caché globalmente. Es muy molesto tener que revisarlo cada vez que abro el inspector. –

8

En la misma página que desea desactivar el almacenamiento en caché de hacer esto: FYI: la versión estoy trabajando es 30,0

Puede:

open webdeveloper toolbar open web developer

and pick disable cache

Después de eso, volverá a cargar la página por su cuenta (está activado) y se recatelará todo, y se recargará cada solicitud futura también es tiempo y puede mantener el desarrollador web abierto siempre para mantener un ojo y asegurarse de que esté siempre encendido (verifique).

3

Si usa FireBug, en el menú desplegable de la pestaña Red hay una opción, desactive la caché del navegador.

enter image description here

0

en Firefox 45, opciones de caché de disco se puede ajustar cambiando el valor de: browser.cache.disk.enable

El valor se puede ajustar en la: página "acerca de configuración" .

En http://kb.mozillazine.org/About:config_entries#Browser me encontré con la siguiente descripción de "browser.cache.disk.enable":

True (predeterminado): El uso de caché de disco, hasta la capacidad especificada en browser.cache.disk.capacity Falso: Desactivar caché de disco (el mismo efecto que establecer browser.cache.disk.capacity a 0)

5

Firefox 48 Herramientas de desarrollo

le permite desactivar la memoria caché sólo cuando la caja de herramientas está abierta, lo cual es perfecto para el desarrollo web :

  • F12
  • la caja de cambios en la esquina superior derecha
  • de desplazamiento de arriba hacia abajo Configuración avanzada
  • de verificación "Desactivar caché (cuando la caja de herramientas está abierta)"

enter image description here

https://stackoverflow.com/a/27397425/895245 tiene similares contenido, pero el posicionamiento ha cambiado un poco desde entonces.

+0

Gracias ... hay información por ahí (y en este hilo) sobre establecer network.http.use-cache en falso ... pero en mi versión de FF (53) esa configuración ya no existe ... Esta técnica está lejos superior de todos modos. –

0

En primer lugar, esto se puede hacer fácilmente, por ej. por PHP para obligar al navegador a renovar los archivos en función de la fecha de caché (tiempo de caducidad).Si solo lo necesita para necesidades experimentales, intente usar ctrl + shift + del para borrar todo el caché a la vez dentro del navegador Firefox. La tercera solución es usar muchos complementos que salen para que Firefox borre el caché según las líneas de tiempo.

Cuestiones relacionadas