Forzar la actualización de solo archivos JavaScript en Firefox y Chrome

63

Quiero borrar solo los archivos JavaScript de mis navegadores web (Firefox y Chrome). Estoy haciendo la depuración de JavaScript, y es molesto que mi JS no se actualice cada vez que cambio mis archivos JS. Lo único que puedo hacer ahora es borrar mis cookies, pero hacer eso borra todo mi historial de navegación.

¿Cómo puedo borrar / actualizar los archivos JavaScript que se han cargado en mis navegadores sin borrar otros archivos?

Graviton
fuente

Respuestas:

42

Lo hago yo mismo para el desarrollo. yo suelo Ctrl + F5 . Es como una actualización de la fuerza. Esto actualiza la página, incluida la descarga de cualquier archivo JavaScript o CSS que se hace referencia, incluso si se almacenaron en caché.

NO borrará nada más, como su historial de navegación.

Pero tenga en cuenta que aunque sé que esto funciona en Firefox, y probablemente en Internet Explorer, no estoy seguro de si Ctrl + F5 Funciona de la misma manera en Chrome.

También, iegik dice:

En algunos navegadores puedes usar ` Ctrl + Cambio + R para hacer la misma tarea.

7wp
fuente
¡Genial! Cambio la respuesta aceptada a la tuya porque la tuya es una solución más simple.
Graviton
Aprecio eso ... Pero tenga en cuenta que aunque sé que esto funciona en Firefox, y probablemente en IE, no estoy seguro de que CTRL-F5 funcione de la misma manera en Chrome.
7wp
2
Lo mismo ocurre con Chrome 21 beta en Win7: actualizar la página con ctrl-f5 no vuelve a solicitar el archivo JS (estoy usando Charles para verificar dos veces).
Artem Russakovskii
1
En realidad, Chrome trata primero a CTRL + F5 como una actualización normal por diseño, CTRL + F5 posterior (más de uno) en poco tiempo forzará la recarga de todas las fuentes
Zeela
1
Para Chrome, F12 y haga clic derecho en el botón de recarga. superuser.com/questions/220179/…
Cees Timmerman
50

Con Chrome:

A partir de Chrome 15, abra las Herramientas del desarrollador, haga clic en la rueda dentada en la parte inferior izquierda de la pantalla y seleccione la casilla de verificación Deshabilitar caché .

Disable cache in Chrome 15 and up

De esta manera, se asegurará de que los recursos siempre se recarguen desde el servidor y no tiene que borrar manualmente el caché, lo que también podría eliminar los datos almacenados en caché para los sitios no relacionados.

avernet
fuente
Gracias por la sugerencia: acabo de marcar y esa opción también está en Chrome 14.
keybits
¡Genio! Eso es un gran hallazgo.
Randomblue
Brillante, estaba buscando esto.
Artem Russakovskii
... y no olvide desmarcar la opción una vez que haya terminado con ella.
Halil Özgür
En una segunda toma, parece que estas opciones solo están activas cuando los devtools están visibles: twitter.com/ChromiumDev/status/227356682890670080 (desde stackoverflow.com/a/7000899/372654 )
Halil Özgür
8

No estoy de acuerdo con @ 7wp. Dado que algunos de sus usuarios finales no están familiarizados con el Ctrl + F5 Funciona, y algunos ni siquiera son conscientes de las diferencias entre los navegadores e incluso la existencia de otros navegadores (por ejemplo, los ancianos); debe obligar al navegador a descargar una nueva copia de los archivos JS / CSS.

La mejor solución aquí es agregar la marca de tiempo al final de los nombres de archivo .js / .css, o agregar la versión svn, que también es una gran idea.

<script src="js/myfile.js?t=<?=time()?>" type="text/javascript"></script>
Alon Kogan
fuente
5

Es posible que desee intentar borrar solo la memoria caché, y no la navegación completa, el historial, las cookies, las contraseñas, los datos de formularios guardados y otras cosas (el valor predeterminado).

En Firefox 3.5, vaya a

Herramientas »Borrar historial reciente ...

Luego, asegúrese de que solo se seleccione "Caché" antes de seleccionar "Borrar ahora".

En Chrome (no sé qué versión en particular estás usando, ya que uso las versiones de desarrollo), ve a

Icono de llave inglesa (Herramientas) »Opciones» pestaña Cosas personales »Borrar datos de navegación ...

Nuevamente, asegúrese de que solo esté marcado "Vaciar el caché".

Alternativamente, puedes intentar abrir una nueva sesión privada en Firefox o la ventana de incógnito en Chrome; tampoco debe almacenar en caché ningún archivo (incluidos los archivos .JS) que descargue y procese automáticamente al navegar.

RoyalKnight
fuente
Incognito es probablemente el camino a seguir para Chrome.
mdoar
1

He estado usando un pequeño truco en un sitio en el que estoy trabajando ... por las mismas razones que tú. Realizo pequeños cambios y tengo el código de JavaScript cargado por el código de JavaScript y quiero asegurarme de que siempre estoy trabajando con el script actual (sin caché).

Intente hacer el código JavaScript que está cargando en un archivo PHP ... simplemente coloque <?php ?> al principio y poner en la extensión de .php.

var fileref = document.createElement('script');
fileref.setAttribute("type", "text/javascript");

// The Date added to the file doesn't effect the results but
// helps Internet Explorer be sure to refresh the data and
// not use cache

var d = new Date();

var t = d.getTime();

fileref.setAttribute("src", filename + ".php?date=" + t);

fileref.setAttribute("id", filename);

Debido a que el nombre cambia, Internet Explorer piensa que es un archivo nuevo;)

Peter Mortensen
fuente
1
No es necesario cambiar el nombre a '.php'. Si pones 'filename.js? T =' + t el resultado es el mismo. Puedes hacerlo con '.css' también. Todos nuestros sistemas de producción utilizan este truco para certificar que los clientes utilizan los archivos de contenido correctos.
Leonel Martins
1
Como nota, tendemos a usar el número de revisión de SVN en lugar de la fecha / hora. De esa manera, obtenemos beneficios de almacenamiento en caché y nos actualizamos solo cuando realmente nos comprometemos.
Groo
¡Muchas gracias! Este truco me deslizó totalmente la mente. He estado luchando contra este problema durante días y esto lo haré por mí. Acabo de poner esto al final de la url: "? & Lt;? Php echo time ()? & Gt;"
thrashr888
1

En Chrome solo tienes que pulsar Ctrl y haga clic en el botón de actualización. Descubrí esto por casualidad.

Julio Bahar
fuente
Esto hace una actualización de toda la página, no creo que solo se actualice Javascript solo.
Ivo Flipse
1

Abro el archivo JavaScript en una pestaña separada, Cambio + actualizar, verifique que estoy viendo los últimos cambios, luego Cambio + actualizar la página real (en realidad, en mi caso, encuadrar en un conjunto de marcos, lo que parece empeorar las cosas). Esto funciona casi todo el tiempo.

doug mayo-wells
fuente
0

No lo he usado, pero el complemento de Firefox "Borrar botón de caché" podría ser de utilidad. Leí su documentación, por lo que no estoy seguro de si también borra el historial de navegación.

Jared Harley
fuente
0

Ir a la configuración de contenido en Chrome, deshabilitar JavaScript y guardar.

Luego, habilite JavaScript de nuevo.

nisar
fuente
0

Si está trabajando con JavaScript y le preocupa volver a cargar la página para reflejar los cambios de JavaScript. Intente usar el depurador de Chrome, donde puede realizar cambios en sus archivos JavaScript cargados en el tiempo de ejecución y, sin usar ninguna recarga, puede probar nuevas funciones o cambios que desee probar.

Nikhil Joshi
fuente
¡Bienvenido a superusuario! Por favor, lea la pregunta otra vez con cuidado. Tu respuesta hace no contesta la pregunta original.
DavidPostill
0

En el último Chrome está disponible:

Enter image description here

Baljeetsingh
fuente
Un poco de elaboración no estaría mal.
Peter Mortensen
0

Agrega alguna función de fecha dinámica al final de tu archivo JavaScript. Obligará al navegador a cargar el archivo JavaScript actualizado. Es decir, al incluir el archivo .js podría agregar .... xyz.js?

< ? php echo date('l jS \of F Y h:i:s A') ? >

Por supuesto, esto podría eliminarse una vez que haya realizado la depuración y esté listo para ejecutarse.

Chris
fuente
Esto no es Javascript.
Natalie Adams