you run react need must internet enabled enable como chrome app activar javascript google-chrome safari webkit browser-cache

run - Forzar una recarga de la página en Chrome usando Javascript



javascript must be enabled to continue chrome (5)

¡Grandes descubrimientos! Me acabo de encontrar el mismo problema y esto realmente ayuda mucho! Sin embargo, además de su descubrimiento, parece que Chrome siempre envía una solicitud GET para location.reload () ... IE / FF está repitiendo la última solicitud en su lugar.

Necesito volver a cargar una página con JavaScript y asegurarme de que no se extraiga de la memoria caché del navegador, sino que se vuelva a cargar desde el servidor. [Como los elementos de la página habrán cambiado en el ínterin]

En IE y FF encontré que el siguiente código funcionó bien;

window.location.reload(true);

Sin embargo, no funciona en Chrome o Safari.

Intenté lo siguiente, pero también en vano;

window.location.replace(location.href); document.location.reload(true); document.location.replace(location.href);

¿Hay una solución a este problema?

Recomendaciones

Después de ver esto, he encontrado que este problema es el manejo del Protocolo HTTP;

  1. Chrome envía una solicitud con Pragma: no-cache campo HTTP Pragma: no-cache
  2. El servidor responde con el campo Last-Modified: DATE1
  3. JS usa location.reload(true) para forzar una recarga desde el servidor no al caché
  4. Chrome envía una solicitud con el campo If-Modified-Since: DATE1
  5. El servidor responde con HTTP Status 304 Not Modified

La aplicación del servidor tiene la culpa de no darse cuenta del cambio de estado en el contenido dinámico de la página y, por lo tanto, de no devolver un 200 . Sin embargo, Chrome / WebKit es el único navegador que envía un campo If-Modified-Since cuando se llama a JS location.reload(true) .

Pensé que pondría mis hallazgos aquí en caso de que alguien más encuentre el mismo problema.


Esto es lo que hago para garantizar que mi archivo de aplicación se vuelva a cargar en Chrome:

var oAjax = new XMLHttpRequest; oAjax.open( ''get'', ''/path/to/my/app.js'' ); oAjax.setRequestHeader( ''Pragma'', ''no-cache'' ); oAjax.send(); oAjax.onreadystatechange = function() { if( oAjax.readyState === 4 ) { self.location.reload(); } }


Para asegurarse de que la página no esté cargada desde la memoria caché, puede agregar un número único para consultar:

window.location = location.href + ''?upd='' + 123456;

También puedes usar la fecha en lugar de 123456


Prueba window.location = window.location


Puedes usar este truco:

$.ajax({ url: window.location.href, headers: { "Pragma": "no-cache", "Expires": -1, "Cache-Control": "no-cache" } }).done(function () { window.location.reload(true); });