¿Cómo actualizar una página web en Chrome (Ctrl + F5 analógico) en un dispositivo sin botón de menú?

16

Tengo un dispositivo Android Nexus 7 con 4.2.2 y navegador Chrome.

¿Cómo se puede realizar una actualización profunda de una página web, análogo de las Ctrl+F5teclas de acceso rápido en los escritorios?

Tenga en cuenta que el dispositivo no tiene un botón de menú.

Según la única pregunta relacionada que he encontrado aquí , la solución es borrar por completo la memoria caché del navegador. Prefiero una solución más conveniente y elegante.

Stan
fuente
2
¿Cómo se relaciona el botón de menú (o la falta del mismo)?
eldarerathis
@eldarerathis, vi algunas publicaciones en la red, sugerí presionar el botón Actualizar herramienta mientras mantenía presionada la tecla Menú.
Stan
Ah interesante. No había escuchado eso antes.
eldarerathis
1
Esta pregunta tiene respuestas mucho mejores en StackOverflow (que muestra cómo dividir en exceso la comunidad no ayuda; Android está lo suficientemente cerca de la programación que no vale la pena crear un sitio separado para; Química vs. Matemáticas, claro)
Dan Dascalescu

Respuestas:

-2

Omitir por caché del sitio:

Esto necesita un código javascript simple que se ejecute en la barra de direcciones para omitir el caché y recuperar el contenido del servidor en lugar del caché del navegador. De acuerdo con esta página MDN en Forzar la recarga de la página actual desde el servidor ,

javascript:location.reload(true)

Ingrese el código anterior en la barra de direcciones del navegador y presione la tecla Intro. Esto buscará todos los contenidos del servidor en lugar de elegir los elementos almacenados en caché en su navegador (evitando así la memoria caché del navegador).

Omitir datos de caché para todos los sitios web (caché global)

El javascript anterior solo funciona para un sitio web específico que ha abierto actualmente. Para borrar todo el caché del sitio web, use los datos de caché del navegador global. Encuentras esto debajo,

Settings > Privacy > CLEAR BROWSING DATA

Seleccione la casilla de verificación "Caché" (y otras opciones como datos del navegador, cookies, contraseña, etc. si lo desea) y seleccione "Borrar".

Nota: Si bien Ctrl+ F5hará que el navegador descarte el caché y solicite nuevos contenidos al servidor, el servidor puede ignorar el no-cacheencabezado y mostrar una página en caché del lado del servidor. Por lo tanto, incluso Ctrl+ F5puede devolver una versión anterior de la página si el servidor ignora el encabezado sin caché.

Modo incognito:

Navegar por el modo de incógnito desactiva el historial y la memoria caché. Por lo tanto, puede visitar cualquier sitio a través del modo de incógnito para solicitar contenido nuevo cada vez.


Para una discusión más interesante sobre lo que hace Ctrl+ F5o forzar actualización,

Lea esta publicación SO, ¿qué solicitudes generan las actualizaciones "F5" y "Ctrl + F5" de los navegadores?

Suerte
fuente
Esto ya no funciona en Chrome 47 .
Dan Dascalescu
1
Incluso después de borrar los datos de navegación, la actualización profunda no estaba ocurriendo. Tuve que matar y relanzar Chrome en mi teléfono Android para forzarlo a salir del caché. (Como una ocurrencia tardía, parece que incluso después de borrar la memoria caché en el disco (presumiblemente), la memoria caché en la memoria sigue existiendo. Killing Chrome borra la memoria caché también.) [PD: Por "disco" me refiero a la no permanente almacenamiento volátil, también conocido como memoria flash.]
ADTC del
3

En mi tableta Samsung que navega con Chrome, escriba esto en la barra de direcciones:

javascript:location.reload(true)

Eso debería desencadenar una recarga dura usando Javascript. Ahora no tengo que esperar días para observar los resultados de un cambio de código que hice. Un nuevo problema es que escribir en una tableta no es mi actividad favorita.

En lugar de escribir el comando anterior, también intenté cambiar al modo de escritorio y luego volver. Eso no refrescó profundamente.

Aad vd A
fuente
2

No obtuve ninguna de estas soluciones para trabajar. Sin embargo, he encontrado una solución de trabajo.

Primero, descubra la url css. En mi caso se veía así:

/min/assets/css/style.min.css

Escríbalo en el campo de dirección, pero también agregue una variable GET:

/min/assets/css/style.min.css?hello

Esperemos que se acepte la variable GET. Debido a que es una nueva url, obliga al CSS a recargarse. Ahora regrese al sitio y el CSS debería haber sido recargado.

Jens Törnell
fuente
2

Lo encontré !!!!!!

En el lado izquierdo de la URL hay un ícono de información (i) o un ícono de candado. Haga clic en el icono y luego [configuración del sitio web].

Encontrará un icono de papelera para borrar la memoria caché del sitio actual y, alternativamente, un botón de "restaurar preferencias".

Trabajando en Android Chrome 71.

JCM
fuente
1
No funciona en mi S9 +, Chrome build 73.0.3683.90. He pulsado la opción Borrar y restablecer al menos 15 veces en una página que controlo (así que sé lo que hace el código bastante bien). Sin embargo, el JS que se ejecuta en la página que estoy cargando sigue siendo una versión antigua.
SE ataca de nuevo por desgracia
1
Bueno, funcionó perfectamente en mi S9, ¡así que supongo que hay algo específico en su caso! ¿Podrías por favor seguir saqueando?
JCM
Ahora he probado esto en dos dispositivos diferentes, uno que usa el modo desarrollador (mi teléfono, ya que soy desarrollador) y el de un amigo. Además, lo he probado en una tableta; no ir allí +. Además, incluso probé en mi iPhone corporativo usando Chrome, y el mismo problema está ahí. Desde mi punto de vista, pareces afortunado, más de lo que parece tener múltiples dispositivos defectuosos a mi disposición.
SE ataca de nuevo Desafortunadamente
Por supuesto, el verdadero problema es el comportamiento funky de Chrome / Android y el almacenamiento en caché hiper-agresivo. Es como un modo de incógnito que no funciona (hablando de lo cual ... eso tampoco funcionó correctamente ...)
SE ataca de nuevo Desafortunadamente
Acabo de comprobar que el Chrome de iPhone no tiene esta opción, por lo que creo que no estamos hablando de lo mismo: además, no hay ninguno "borrar y restablecer" en el Chrome de mi Android. Para verificarlo tres veces, he probado mi sugerencia en un Xiaomi A1 que funciona bien (observe que muestra el tamaño de caché local de la página en KB). Es posible que necesites cerrar la pestaña (o intentar matar a Chrome). De lo contrario, me pregunto qué se espera que haga el "botón de basura" de un sitio específico ...
JCM
1

Acabo de encontrar una solución más elegante. En el menú de la página web, solicite la versión de escritorio del sitio web. Extraerá datos del servidor y la página se volverá a cargar. Después de eso, puede volver a la versión móvil una vez más.

Sergei Granovski
fuente
1
No todos los sitios web ofrecen versiones móviles / de escritorio.
cerveza
1
La versión actual de Chrome en Android tiene la opción Solicitar sitio de escritorio. Ya sea que todos los sitios cumplan con esa solicitud o no, sigue siendo una opción efectiva en muchos casos. Probar esto y descubrir que no funciona es mucho más fácil y rápido que borrar cachés en la configuración.
Philip Jones el
1

Necesito una forma de borrar el caché actual o todo el caché del mismo dominio de origen a través de javascript, para asegurarme de que el lanzamiento de la actualización de mi aplicación web llegue sin errores.

Tampoco tuve éxito en cambiar temporalmente las metaetiquetas de caché en el encabezado html.

Solo en escritorio y no automatizable:

ctrl + R

solía trabajar para forzar la recarga para borrar el caché.

ahora tienes que presionar

ctrl + shift + R
or
shift + F5

Parece que Chrome hizo difícil borrar el caché.

Probablemente hacen esto para hacer trampa en los puntos de referencia de velocidad del navegador. Estilo VW.

Escribí mi propia solución forceReload () que funciona en Windows Chrome y Android Chrome y chromium:

window.forceReload = function(){
    if( !window.fetch)return document.location.reload( true);
    var els = document.getElementsByTagName( "*");
    for( var i = 0; i < els.length; i++){
        var src = "";
        if( els[i].tagName == "A")continue;
        if( !src && els[i].src)src = els[i].getAttribute( "src");
        if( !src && els[i].href)src = els[i].getAttribute( "href");
        if( !src)continue;
        fetch( src, { cache: "reload"});
    }
    return document.location.reload( true);
};

Esta función solo volverá a cargar el contenido que se ha cargado en la página actual, puede activarlo una vez en cada uno de sus clientes después de que haya nuevas actualizaciones en el servidor, o simplemente agregar un botón de actualización que funcione en su aplicación.

saxófono
fuente
Gracias por compartir el código. Fetch parece todavía API experimental, entonces probablemente otra API de caché experimental también podría ser útil.
Stan
-1

Tire hacia abajo en una página para volver a cargarlo, viene ncorporated al cromo para los teléfonos inteligentes, para ver más trucos como la verificación de este enlace, donde encontré la solución para su problema

fsalazar_sch
fuente
1
Mientras que esta característica se añade más recientemente a broswers Chrome (ver.41 arriba) que no será availabe en las versiones anteriores. Por lo que esta función puede o no puede trabajar. Y lo que es más importante, esto solo vuelve a cargar la página de la manera normal, pero el OP solicita una actualización completa.
Lucky
No se especifica si la solución exigirá esta se encuentra bajo un punto de vista de Android o de codificación
fsalazar_sch
1
No se pudo entender lo que quiere decir con eso. Pero esta respuesta no me convence de que proporcionará una solución al problema del OP.
Lucky
Esta "respuesta" es, literalmente, sólo diciendo a la gente que puede realizar una regular de actualización tirando hacia abajo en la página. La pregunta de OP sin embargo estaba a punto de hacer un "refresh duro", equivalente CTRL + F5 en el PC.
Bort
-3

A la izquierda de la ventana de la dirección web que está visitando es una flecha casi circular.

Manolo
fuente
1
No creo que esto haga una actualización profunda como Stan está pidiendo.
dotVezz