¿Cómo puedo forzar una recarga dura en Chrome para Android?

207

En Chrome para escritorio, tengo opciones en las herramientas de desarrollo para deshabilitar la memoria caché por completo cuando se abren las herramientas de desarrollo y tengo las opciones para realizar una recarga dura de forma manual al hacer clic largo en el botón de recarga (con las herramientas de desarrollo abiertas).

¿Existe alguna técnica para Chrome para Android? No encontré ninguna configuración. ¿Qué puedo hacer cuando quiero forzar al navegador a descargar algunos archivos javascript o css en lugar de usar uno en caché durante el desarrollo?

Riesling
fuente
Acabo de regresar para extender (lo que había sido) una aplicación web estable, y descubrí que esto estaba sucediendo. Los últimos datos de estado se almacenan en un archivo .js con un sufijo url de cache-buster. Esto ya no funciona, en Chrome en Windows, ChromeOS o Android.
Euan M
parece que una simple actualización (haciendo clic en el círculo con la flecha) detecta cualquier cambio en estos días. sin trucos. ... avísame si me equivoco.
Ronnie Royston el

Respuestas:

168

Estoy usando de window.location.reload(true)acuerdo con MDN (y esta pregunta similar) obliga a la página a recargarse desde el servidor.

Puede ejecutar este código en el navegador escribiendo javascript:location.reload(true)en la barra de direcciones.

Konrad Dzwinel
fuente
77
Simplemente escríbalo en la barra de direcciones con el código como prefijo javascript:.
Konrad Dzwinel
44
En realidad, deberías poder evitar window.parte. javascript:location.reload(true)debería hacer el truco.
Konrad Dzwinel
55
no funcionó para mí en Chrome v55.0.2883.91 / android5.1.1
Kev
20
No funciona en el mío, v56.0.2924.87 en Android 7.1.1. ¿Por qué puede presionar Actualizar y hacer que el navegador vuelva a descargar como solía funcionar? Tal molestia cuando se trata de desarrollar.
Scott Wilson
33
Abro una ventana de incógnito
Deepak Kamat el
133

Ver la página en modo incógnito deshabilitará el caché. Era la única forma en que podía forzar una actualización en una hoja de estilo sin borrar manualmente el caché a través de la configuración.

Miguel
fuente
2
@Kev Tampoco para mí.
Ricky Boyce
1
Sí, este está funcionando para mí en Android 6.0.1 con Chrome 59.
Avio
44
Esto funciona mejor que la respuesta aceptada, al menos en Android 7.1.2 y Chrome 61. El almacenamiento en caché es realmente agresivo de alguna manera. Incluso vaciar archivos en caché para ese dominio no funcionó para mí.
Ogier Schelvis
Lo uso con más frecuencia, si no funciona para usted, probablemente la caché esté en el servidor y no en el navegador.
Deepak Kamat
2
Borrará el caché en modo incógnito solo la primera vez. Después de eso, aparece el mismo problema
Mara
75

También una opción:

  1. Menú
  2. Configuraciones
  3. Intimidad
  4. Eliminar datos de navegación
  5. Marque "Caché" y presione "BORRAR"

y luego vuelve a cargar la página.

jaque mate711
fuente
1
Ahora está cambiado a Clear Browsing Data, donde puede marcar clear cacheusando la casilla de verificación.
shaijut
1
No, y luego, MATAR Chrome, reiniciar Chrome y luego volver a cargar la página. Sí, solo empeoró.
ADTC
44
Actualización: incluso matar a Chrome ya no funciona. No tengo ni idea de qué demonios está borrando la opción "Imágenes y archivos en caché" ... todavía se conserva en el archivo CSS en caché. ¡Esto se está volviendo más ridículo!
ADTC
1
Actualización: Ver la respuesta de heidgert. El borrado de la memoria caché aún puede cargar el resultado "en caché" de los servidores de Google si "Ahorro de datos" está activado en la configuración de Chrome.
ADTC
1
Esto borrará el caché de TODOS los sitios, no solo el inspeccionado.
Obmerk Kronen
46

Puede usar la opción Solicitar sitio de escritorio desde el menú de la aplicación (a la derecha de la barra de direcciones) que obligará a la página a recargarse.

Simplemente tóquelo, espere la actualización y luego anule la selección.

lucoweb
fuente
Confirmado trabajando en Chrome. Casi me pierdo esta respuesta mientras rozaba. Se eliminaron los comentarios sobre Firefox para ayudar a la siguiente persona. Espero que esto no parezca conflictivo con la intención del autor .
Ismael
1
Esta es, de lejos, la mejor respuesta para el desarrollo cuando obtienes un archivo css o js atascado. Encuentro que la actualización generalmente funciona bien, pero a veces por alguna razón inexplicable, un archivo js o css se atasca, y esta es la única forma de deshacerlo que he encontrado. Ojalá pudiera dar más de 1 voto a favor, jaja, porque es una solución tan fácil.
Lizardx
8
Esto solía funcionar hace un tiempo, pero ya no funciona en ninguna versión reciente de Chrome a partir de diciembre de 2017.
Capagris
1
Esto funcionó para mí con Chrome 2018 65.0.3325.109 en Samsung Android 5.1.1; SM-T900 Build / LMy47X. Tenía el beneficio adicional de no destruir los datos en caché (como los localStoragevalores).
CÓDIGO-LEÍDO
1
No funciona en abril de 2019. Chrome 73+ no funciona.
SE ataca de nuevo Desafortunadamente
31

Mencionando esto porque mencionaste "al desarrollar".

Puede controlar el dispositivo móvil a través de su navegador Chrome Desktop.

Visita chrome://inspect/#devicesen tu escritorio. Y Inspectel dispositivo que está conectado a su escritorio. Acepte cuando se le pida permiso.

Ahora debería ver una ventana completa de Devtool para la página actual en el dispositivo móvil.

¡Ahora, use el acceso directo de recarga dura (Cmd + Shift + R) en el escritorio para realizar una recarga dura en el dispositivo móvil!

Aakash Goel
fuente
3
este comentario está desactualizado pero me puso en el camino correcto. Primero debe habilitar el teléfono real para la depuración a través de Chrome.
Deborah
Para obtener instrucciones detalladas sobre cómo habilitar la depuración de USB en un teléfono Android, consulte: stackoverflow.com/a/16707217/1024735 . Y esta característica es increíble para algo más que la capacidad de recarga dura. ¡Gracias!
kevinmicke
Para probar en los emuladores de Android Ctrl + Shift + R en devtools es realmente agradable y rápido. No activar ni desactivar ninguna configuración, etc. Gracias.
Rainer Schwarze
21

No olvide asegurarse de que la configuración "Reducir el uso de datos" esté desactivada, ya que parece descargar datos en caché (¿de los servidores de Google?) A pesar de que su caché local está vacía.

Heidgert
fuente
1
Creo que esta configuración ahora se llama simplemente "Ahorro de datos".
Bletch
19

Cómo restablecer todos los datos de una URL / sitio web determinado en Chrome Mobile para Android:

1 - Abre el menú de Chrome y toca el ícono "i (info)"

uno

2 - toca "Configuración del sitio"

dos

3 - Toque el icono de la papelera

Tres

Eso es todo, incluso el trabajador de servicio más profundamente instalado para esa URL ahora morirá.

yPhil
fuente
77
Esto no funciona en Chrome 73.0.3683.90 en un Samsung S9 +. He intentado esto más de 15 veces, así como javascript: location.reload (true), y no funciona. Parece que los usuarios de Android tampoco pueden ser desarrolladores, según Guug-Ul, señor de la oscuridad.
SE ataca de nuevo Desafortunadamente
Funciona en mi Nota 8 .. Pero tengo que actualizar la página después.
Chris Cudmore
También puede obtener este menú haciendo clic en el icono de bloqueo (o lo que sea que se muestre para conexiones inseguras) a la izquierda de la URL.
Chris Cudmore
De lejos, la mejor solución! <3
bArraxas
12

Sé que esta es una vieja pregunta, pero descubrí que la respuesta aceptada no funcionó para mí.

Una solución alternativa sería agregar la url con un nuevo parámetro de url como website.com?a=1,website.com?a=2 , etc.

Si ya tiene parámetros, por supuesto, usaría un ampersand, es decir website.com?q=test&a=1

Fobia al plátano
fuente
Esto funciona. Solo ?aes suficiente si solo quieres recargar una vez.
Dan Dascalescu
11
Esto no es muy factible para recargar archivos de referencia en caché (como CSS o JS), ya que realmente no puede editar el HTML principal para agregar ?a, por supuesto, a menos que sea el host del sitio.
ADTC
7

A partir de 2018, desde el centro de ayuda de Google (probado en Chrome 63):

  1. toca el menú de tres puntos ;
  2. elija Historial> Borrar datos de navegación ;
  3. si es necesario, elija el período de tiempo (arriba de la lista de verificación);
  4. desmarque todos los elementos excepto Imágenes y archivos en caché ;
  5. proceder con Borrar datos y confirmar.

Como se mencionó en otra respuesta, las pestañas de incógnito también son de gran utilidad para el desarrollo.

Skippy le Grand Gourou
fuente
Tenga en cuenta el paso 3: elija el período de tiempo. Esto me sirvió de algo ya que estaba tratando de borrar las páginas en caché de hace 3 semanas.
Dror
No es tu culpa, pero esta es una solución bastante terrible, ya que también borra los datos de navegación para todos los demás sitios, ¡lo cual es una molestia si usas tu navegador para algo que no sea trabajo de desarrollo!
GameKyuubi
@GameKyuubi En realidad, si selecciona datos de la última hora, el dolor es limitado. Pero, por supuesto, esta solución es bastante pobre, que sólo se hace referencia porque es la oficial y que lo hace el trabajo (al contrario de algunos otros).
Skippy le Grand Gourou
Es lo que quiero decir, el hecho de que esta sea la solución oficial es francamente vergonzoso.
GameKyuubi
7

Encontré una solución que funciona, pero es fea.

  • Conecte el dispositivo Android a su PC con un cable USB y abra Chrome en su escritorio .
  • Haga clic derecho en cualquier lugar de una página y seleccione "Inspeccionar".
  • Haga clic en el menú de tres puntos y seleccione "Dispositivos remotos" en el menú "Más herramientas":

    ingrese la descripción de la imagen aquí

  • En el panel que se abre, seleccione su dispositivo y luego el botón "Inspeccionar" junto al nombre de la pestaña en su teléfono que necesita actualizarse:

    ingrese la descripción de la imagen aquí

  • En la ventana que se abre, haga clic en la pestaña "Red" y marque la casilla de verificación "Desactivar caché":

    ingrese la descripción de la imagen aquí

  • Vuelva a cargar la página en su teléfono o use el botón de recarga en la ventana de DevTools.

Nota: si su teléfono no aparece en la lista de dispositivos:

  • asegúrese de que la conexión USB esté utilizando el modo Transferencia de archivos y no se esté cargando simplemente
  • intente reiniciar ADB o ejecútelo adb devicespara ver si se está detectando el dispositivo
Nathan Osman
fuente
1
Impresionante solución, esto funciona principalmente para "inspeccionar" la página web del dispositivo directamente en el escritorio, y también puede borrar el caché. Gracias.
juanram0n
Esta es en realidad la respuesta más hermosa.
John
6

La depuración remota le permite utilizar las herramientas de desarrollo de escritorio:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging

Swonkie
fuente
Sí, gracias Sé que ya - debería haber mencionado esto, pero a veces no quiero que enchufarlo, pero todavía tienen esta opción
Riesling
2
Puede borrar el caché de esta manera: support.google.com/chrome/answer/2392709
Swonkie
55
Gracias, una opción sin vaciar todo el caché para todos los sitios sería bueno, sin embargo
Riesling
Esta es la opción más confiable cuando habilita Red> Deshabilitar caché
Rupert Rawnsley
6

Versiones recientes de caché de Chrome de forma muy agresiva. Incluso las técnicas de eliminación de caché como " http: // url? Updated = datecode " dejaron de funcionar. Debe borrar el caché o iniciar una ventana de incógnito cada vez (y asegurarse de que el protector de datos esté desactivado).

Greg Searle
fuente
Interesante, no estaba al tanto de esto. ¿Tiene alguna fuente que respalde esta afirmación?
Antoine
2
Esto es solo un comportamiento observado mientras desarrollo mis propias aplicaciones Javascript. Tuve que especificar la directiva CACHE-CONTROL: NO-CACHE en el encabezado HTTP de mi servidor web de desarrollo para evitar enloquecer por errores que simplemente no desaparecerían (porque Chrome insistía en almacenar en caché el código antiguo). Firefox no muestra este comportamiento.
Greg Searle
4

La única forma confiable que he encontrado que no requiere enchufar el teléfono a una PC es la siguiente:

1. Fuerce la detención de la aplicación Chrome.

Esto debe hacerse primero, y no puede volver a abrir Chrome hasta que finalice estos pasos. Hay varias formas de forzar la detención. La mayoría de los lanzadores caseros te permitirán acceder a la "Información de la aplicación" manteniendo presionado el ícono de Chrome y seleccionando el ícono "i". Alternativamente, puede ir a la configuración de Android y simplemente buscar "Chrome".

Una vez en "Información de la aplicación", seleccione "Forzar detención" como se muestra a continuación:


2. Borrar el caché de Chrome

Seleccione "Almacenamiento" en la misma pantalla:


Finalmente, seleccione "Borrar caché".

Cuando regrese a la aplicación Chrome, la página debería recargarse y mostrar una versión no almacenada en caché.

Además, encontré un sitio que hace que sea fácil probar si ha borrado su caché: https://refreshyourcache.com/en/cache-test/
No estoy afiliado de ninguna manera. Tenga en cuenta que el método para borrar el caché mencionado en ese sitio de hecho está desactualizado y ya no es válido.

Diamante negro
fuente
1
Perfecto, esa es la única solución que funcionó para mí sin depuración USB.
Luis Lema
2

EDITAR: Este método ha quedado en desuso en Google Chrome y ya no funcionará.

RESPUESTA ORIGINAL:

Pude borrar el caché (incluyendo xhr posterior) usando chrome: // net-internals

internos de red de cromo

Luego haz clic en la pequeña flecha en la esquina superior derecha

menú

Seleccione "borrar caché" de ese menú.

Tom Kay
fuente
En Chrome 75, chrome: // net-internals dice "El visor de eventos net-internals y la funcionalidad relacionada se ha eliminado ..."
Bort
@Bort gracias por el aviso. Parece que este método ya no funcionará.
Tom Kay el
1

Aquí hay otra solución simple que puede funcionar cuando otros fallan:

Hoy, una solución bastante simple del lado del desarrollador funcionó para mí cuando el problema de almacenamiento en caché era un archivo CSS en caché. En resumen: cree una copia temporal del archivo html y navegue para actualizar el caché CSS.

Este truco puede actualizar el archivo CSS, al menos en el navegador predeterminado de Android con el globo azul (pero es muy probable que sea gemelo, también el navegador oficial de Chrome, y cualquier otro navegador que encontremos en teléfonos "inteligentes" con su tendencia de almacenamiento en caché agresivo )

Detalles:

Al principio probé algunas de las soluciones bastante simples que se comparten aquí, pero sin éxito (por ejemplo, limpiar la historia reciente del sitio específico, pero no meses y meses). Sin embargo, mi último CSS no se aplicaría después de la actualización. Y eso a pesar de que ya había empleado el truco del número de versión en la llamada al archivo CSS en la sección principal del html que me había ayudado a evitar estos molestos cachorros agresivos en el pasado. (ejemplo: link rel = "stylesheet" href = "style.css? v = 001" donde actualiza este número de pseudo-versión cada vez que realiza un cambio en un archivo CSS, por ejemplo 001, 002, 003, 004 ... (debe hacerse en cada archivo html del sitio))

Esta vez (agosto de 2019) la actualización del número de versión del archivo CSS ya no fue suficiente, ni algunas de las medidas más simples mencionadas aquí funcionaron para mí, o ni siquiera pude encontrar acceso a algunas de ellas (en un teléfono Android prestado).

Al final probé algo relativamente simple que finalmente resolvió el problema:

Hice una copia del archivo index.html del sitio dándole un nombre diferente (indexcopy.html), lo cargué, lo hojeé en el dispositivo Android, luego volví a la página original, lo actualicé (con el botón Actualizar a la izquierda de la barra de direcciones) y voilà: esta vez la actualización de index.html finalmente funcionó.

Explicación: La última versión del archivo CSS ahora se aplicó finalmente en Android al actualizar la página html en cuestión porque la copia en caché del archivo CSS ahora se había actualizado cuando se llamó al archivo CSS desde una página html temporal con un nombre diferente que no existía en ninguna parte en el historial del navegador y que podría eliminar nuevamente después. El almacenamiento en caché agresivo aparentemente ignoró la URL de CSS y en su lugar se fue por la URL de HTML, a pesar de que era el archivo CSS que necesitaba actualizarse en la memoria caché.

DirkTheWebPhoenix
fuente
Lamentablemente, este es el único que parece funcionar hoy en día. Significa que siempre que trabaje en CSS, debe seguir actualizando functions.php en WordPress para actualizar la versión. Sí, otra estupidez sobre Google, que no puede pensar y ahora está a la altura de Microsoft. Pero sí, un viejo truco :)
Gavin Simpson
1

Si solo se trata de archivos incluidos, simplemente agregue la versión después de la ruta ( ?v=12345678)

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

Quien cargue la página nuevamente verá los cambios.

Novasol
fuente
1
Gran respuesta infravalorada!
Lisandro