una teclado recargar pagina navegadores los evitar como chrome celular caché cache borrar aplicación actualizar javascript google-chrome caching

javascript - teclado - evitar caché de los navegadores al actualizar una aplicación web



La memoria caché no se borra en Google Chrome (5)

No estoy seguro de si esto todavía se aplica en estos días, pero hubo algunos casos en el pasado donde los proxies podían hacer que un valor de cadena de consulta se ignorara para el almacenamiento en caché. Hay un artículo de 2008 que discutió la idea de que los valores de la cadena de consulta no eran ideales para romper el almacenamiento en caché, y que era mejor revisar el nombre del archivo, por lo que se hace referencia a project_32472938.js en lugar de utilizar la cadena de consulta. .

(También he visto, en algunos lugares, algunas discusiones sobre casos inusuales en los que ciertos clientes no veían estas actualizaciones, pero parecían ser inconsistentes, no vinculadas a Chrome, necesariamente, sino más bien vinculadas a una instalación específica de Chrome en una máquina específica. Sin duda, recomendaría revisar el sitio en otra computadora para ver si el problema se repite allí, ya que al menos podría limitarse a si se trata de Chrome en general o de su instalación específica de Chrome que está teniendo problemas).

Dicho todo esto, ha pasado bastante tiempo desde 2008, y eso puede no ser aplicable en estos días. Sin embargo, si sigue siendo un problema y no se puede encontrar una solución al problema subyacente, al menos ofrece un método para eludirlo.

Cuando implemente la versión, agregaré el número como una cadena de consulta con el archivo JavaScript y CSS como sigue?

''app/source/scripts/project.js?burst=32472938''

Estoy usando lo anterior para reventar el caché en el navegador.

Pero en Firefox, estoy obteniendo el último script que he modificado. Pero en Chrome, no recibo el último script que he modificado. En lugar de eso, me estoy poniendo el viejo.

Pero en la consola de desarrollador, estoy viendo el número de ráfaga que se modifica en la última.


No creo que Chrome realmente cause el problema, porque rompería casi todas las aplicaciones web (por ejemplo: https://www.google.com/search?q= needle )

Podría ser que su implementación se retrasó un poco, por ejemplo.

  1. Comience a instalar nuevos scripts
  2. Verifique con Chrome (recibe una versión anterior en una nueva ID)
  3. Instalar acabados
  4. Lo intentas con Firefox (recibe una nueva versión)
  5. Chrome todavía muestra la versión anterior porque almacenaba en caché el script anterior con una nueva ID

O tiene una CDN como Azure entre su servidor web y su navegador.

Con la configuración estándar, Azure CDN ignora la cadena de consulta para el hash de almacenamiento en caché.


prueba esas meta etiquetas:

<meta http-equiv="cache-control" content="max-age=0" /> <meta http-equiv="cache-control" content="no-cache" /> <meta http-equiv="expires" content="0" /> <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> <meta http-equiv="pragma" content="no-cache" />


De acuerdo con la documentación de Google, la mejor manera de invalidar y volver a cargar el archivo es agregar un número de versión al nombre del archivo y no como un parámetro de consulta:
''app/source/scripts/project.32472938.js''

Aquí hay un enlace a la documentación:
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#invalidating_and_updating_cached_responses

Otra forma es usar un ETag (token de validación):
https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#validating_cached_responses_with_etags

Aquí es cómo configurar un ETag con Nginx:
http://nginx.org/en/docs/http/ngx_http_core_module.html#etag

Y, por último, un tutorial sobre el almacenamiento en caché del navegador con Nginx y ETag:
https://www.digitalocean.com/community/tutorials/how-to-implement-browser-caching-with-nginx-s-header-module-on-centos-7#step-2-%14-checking-the -comportamiento por defecto


no estoy seguro, pero para intentar ...

google crome siempre lo ignora ..

necesita agregar un ''? random.number'' o "? date.code" a cada enlace cada vez que se presiona una url en su sitio web. por ejemplo, si ''myhomepage.html? 272772'' está almacenado en el caché, entonces al generar un nuevo número aleatorio, por ejemplo ''myhomepage.html? 2474789'', google chrome se verá obligado a buscar una nueva copia.