Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

314
Vistas
¿Cómo maneja adecuadamente el almacenamiento en caché de contenido web estático?

Los navegadores almacenan en caché los archivos estáticos. Es para lo que están diseñados. 99% del tiempo, eso es algo bueno. Hasta que nosotros, como desarrolladores, actualicemos ese contenido estático.

Si un desarrollador actualiza un archivo javascript, pero el navegador de un usuario extrae la versión almacenada en caché, entonces:

  • En el mejor de los casos, le faltarán algunas funciones nuevas hasta que el navegador decida actualizar su caché.
  • En el peor de los casos, si también actualizó la página html para llamar a una función javascript que no existía en la versión anterior del archivo javascript que el navegador almacenó en caché, su página se rompe

Como desarrolladores, sabemos presionar Ctrl+Shift+R, o Ctrl+F5, o abrir la consola de desarrollo, deshabilitar el caché en la pestaña Red y volver a cargar. Pero los usuarios no lo saben.

¿Cuál es la mejor práctica para manejar las actualizaciones de contenido estático?

  • ¿Es para asegurarse de que cuando agrega nuevas funciones a un archivo .js , envíe la actualización a producción unas horas/días antes de actualizar el html para llamar a esa función en las etiquetas <script> , lo que permite que los navegadores actualicen su caché? durante ese tiempo?
  • ¿Es para no llamar a las funciones de javascript desde HTML dentro de las etiquetas <script> ?
  • ¿Hay alguna manera de forzar de alguna manera a los navegadores a que expiren el caché en un archivo estático específico cuando lo actualice?
  • ¿Algo más?

Obviamente, es posible deshabilitar todo el almacenamiento en caché en su sitio, pero no es una solución realista.

PD. No estoy usando ningún tipo de marco frontend, solo javascript/jquery sin procesar. Si la situación es diferente con los marcos frontend, me encantaría saberlo también a un alto nivel.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si entiendo correctamente, desea que el archivo JavaScript se actualice para el usuario cuando actualice. debe usar la API de trabajo de servicio para crear una versión de caché para archivos específicos o usar la biblioteca de la caja de trabajo de Google. haga clic aquí para la API del trabajador de servicio, haga clic aquí

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hace algunos años, location.reload(true) permitía omitir el caché como lo hace CTRL / Command + Shift + R. Solo Firefox continúa admitiendo esta función por ahora, pero la recarga dura con javascript ya no es compatible con los navegadores basados en cromo. ( la especificación no describe esta función (más) )

  • Este cambio también se discutió sobre este tema en github/Microsoft/TypeScript y varios otros lugares en la web.

jQuery utiliza una solución sencilla para ser compatible con casi todo. Si carga algo con jQuerys jQuery.ajax({ url, cache: false }) , agrega un parámetro _=TIMESTAMP a la url, que tiene un efecto similar pero puede inflar el caché.

Puede utilizar el encabezado de etiqueta de entidad ( ETag ). Las etiquetas de entidad son similares a las huellas dactilares y si el recurso en una URL determinada cambia, el servidor debe generar un nuevo valor Etag, que es un comportamiento similar al del encabezado Última modificación. ( caniuse:etag )

  • Etiquetas de entidad en: Apache , IIS , nginx ( nginx docs ), nodejs

También es posible borrar el caché de los sitios con un encabezado Clear-Site-Data: "cache" . ( mdn , caniuse:clear-site-data )

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda