¿Cuál es la diferencia entre "Recarga normal", "Recarga dura" y "Caché vacía y recarga dura" en Chrome?

342

Recientemente descubrí esta nueva característica en Chrome:

opciones de recarga

Puedo descubrir la diferencia entre la opción 1 y la opción 3, y esa opción 2 es probablemente algo intermedio, pero no puedo encontrar información más precisa en ninguna parte.

¿Alguien sabe el comportamiento preciso de cada una de las 3 opciones?

Samuel Rossille
fuente
17
¿Podría explicar "esta característica"? Específicamente: ¿cómo se accede? Intenté todo tipo de clics con el botón derecho, control-clic, ... pero no pude obtenerlo. ¿Qué versión es esta?
Joachim Sauer
83
@JoachimSauer Jaja, ese es mi pequeño secreto ... En serio, está extremadamente bien oculto: tienes que presionar el botón de actualización sin soltarlo inmediatamente mientras la consola del desarrollador está activa samuelrossille.com/home/blog-chrome-reload-options.html
Samuel Rossille
11
También aparece al hacer clic con el botón derecho en el ícono de recarga (mientras Devtools está abierto)
Costa
77
¿Funciona esto para OSX Chrome? Parece que no puedo abrirlo a través de Dev Tools y hacer clic con el botón derecho / clic + mantener
nitsujri
66
Acabo de encontrar estas características en el año 2016 por accidente ...
Edwin Yip

Respuestas:

439

Recarga normal

Lo mismo que presionar F5. Esto usará el caché pero revalidará todo durante la carga de la página, buscando respuestas "304 no modificadas". Si el navegador puede evitar volver a descargar archivos JavaScript en caché, imágenes, archivos de texto, etc., lo hará.


Recarga dura

No use nada en el caché al hacer la solicitud. (que es igual a SHIFT+ F5No es necesario abrir la consola del desarrollador) Obligue al navegador a volver a descargar todos los archivos, imágenes, archivos de texto, etc. de JavaScript.


Caché vacía y recarga dura

Obviamente, si el caché está vacío, entonces tendrá que hacer una recarga dura. Esto obligará nuevamente al navegador a volver a descargar todo. Sin embargo, si la página realiza descargas posteriores a través de JavaScript que no formaban parte de la carga de la página, entonces estas podrían seguir utilizando la memoria caché, que es donde vaciar la memoria caché ayuda a asegurarse de que ni siquiera estas archivos en caché


Nota : Esta función solo está disponible cuando las herramientas de desarrollador están abiertas.

Andrew Rasmussen
fuente
49
¿Alguien sabe si la tercera opción solo vacía el caché para el sitio actual, en lugar de vaciar todo el caché?
Grinn
10
@Grinn: En realidad, ahora que lo pienso, probablemente sea todo el caché. El objetivo de esa función es eliminar las descargas posteriores, que no se limitan a un solo "sitio".
Andrew Rasmussen
13
No tengo claro qué se considera un "after-the-fact download via Javascript"? ¿Alguien puede dar un ejemplo concreto?
Costa
44
@Costa Puede descargar cosas que no se especifican inicialmente en el DOM. Por ejemplo, agregando una nueva etiqueta <script> a su DOM, o usando RequireJS, etc. Cualquier biblioteca basada en AMD (como RequireJS) básicamente carga sus scripts de manera perezosa. En ese caso, debe vaciar el caché para asegurarse de que realmente todo se vuelva a cargar.
Domi
16
Cabe señalar que esto solo funciona si las herramientas del desarrollador están abiertas (F12) Sería bueno si esta fuera una configuración que siempre podría estar disponible independientemente de si las herramientas de desarrollo están abiertas o no.
scunliffe
4

Esto también funciona en Mac OS X. Abra las herramientas del desarrollador y luego, en el botón de recarga, ya sea 1. clic secundario (clic derecho para el mouse derecho) o 2. clic largo, también conocido como pulsación larga para ver el menú.

Además de esta respuesta , la recarga dura a menudo hace que se actualicen los servidores proxy, las redes de entrega de contenido y otros cachés remotos.

ingrese la descripción de la imagen aquí

dcorking
fuente
"La recarga dura a menudo hace que se actualicen los servidores proxy, las redes de entrega de contenido y otros cachés remotos". → ¿Puedes respaldarlo? ¿Tiene alguna cita que explique por qué este sería el caso? Esperaría que Hard Reload simplemente recargue todo el caché local y no tenga ningún efecto adicional en los servidores remotos.
Denilson Sá Maia
Creo que los navegadores envían un Cache-Control: no-cacheencabezado. squid-web-proxy-cache.1019090.n4.nabble.com/… ¿El tuyo?
dcorking
1
Hice algunas pruebas ... El ir a la URL o el uso normal de recarga envió 3 cabeceras relacionadas con caché: Cache-Control: max-age=0, If-Modified-Since, If-None-Match. Sin embargo, al realizar Hard Reload (con o sin vaciar el caché), solo se enviaron 2 encabezados relacionados con el caché: Cache-Control: no-cachey Pragma: no-cache. Entonces, sí, el navegador de hecho envía un encabezado pidiendo a los servidores una versión nueva; entonces depende de los servidores (incluidos los servidores proxy) cambiar el comportamiento en función de eso.
Denilson Sá Maia
¡Excelente! Puede editar eso en mi respuesta o escribir su propia respuesta. @ DenilsonSáMaia
dcorking
0

El siguiente método le permite borrar el caché solo para la URL problemática. Me ayudó cuando estaba atascado con la caché de redirección http a https.

  1. Abra las herramientas de desarrollador de Chrome, en Windows utilizo F12
  2. Marque Preserve logpara guardar el registro antes de la redirección
  3. Haga clic derecho en la URL redirigida y Clear browser cache

Esto borrará solo el caché con problemas sin afectar el caché normal.

Sohail Ahmed
fuente