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?

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.


¡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.


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>

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.


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;)


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.


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.



0

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

Luego, habilite JavaScript de nuevo.


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.


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


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.


Esto no es Javascript.
Natalie Adams
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.