¿Un restablecimiento de IIS forzará el reenvío de elementos almacenados en caché?

10

Estoy tratando de desarrollar una estrategia para manejar archivos javascript en caché, css, imágenes, etc. cuando lanzamos una actualización de nuestro sitio. Antes de comenzar a implementar los números de versión en los archivos javascript, me preguntaba si un reinicio de IIS después de cada lanzamiento podría volver a enviar los archivos en caché.

DaveK
fuente

Respuestas:

8

Cuando hace un IISReset, el caché de IIS se borrará y luego comenzará a reconstruirse después de que comience una copia de seguridad a medida que entren las solicitudes del cliente. Si actualiza un archivo, el archivo en caché anterior se volverá obsoleto e IIS servirá el archivo actualizado y Actualice el caché con el nuevo archivo.

IISReset (aunque duro) borrará el caché de IIS pero no hará nada con cachés locales en servidores proxy o clientes. Quizás haya confundido un poco la terminología, pero no hay ningún concepto de "resentimiento" cuando se trata de almacenamiento en caché. Todo está basado en la solicitud. Si un cliente solicita algo y se encuentra en un caché, entonces será atendido desde el caché. Deberá forzar la caducidad del contenido en sus archivos si va a mantener los mismos nombres de archivo.

squillman
fuente
Gracias por la ayuda. Perdone mi ignorancia en esta área ... Me estoy confundiendo entre el cliente y el caché de IIS. El término "reenviar" se refería al servidor que enviaba el contenido en lugar de extraerlo de la memoria caché del cliente.
DaveK
@ No te preocupes en absoluto, ¡me alegra que haya ayudado! Un bit adicional, si un archivo está ubicado en un caché de cliente o en un caché proxy ascendente, el servidor ni siquiera recibirá la solicitud a menos que el elemento en caché esté obsoleto y haya una versión más nueva disponible del servidor.
Squillman
3

No, el almacenamiento en caché del cliente se basa en el tiempo de caducidad del contenido.

Jim B
fuente
3

Cuando modifica un archivo javascript, necesita TODOS los clientes que ejecutan la aplicación web para obtener el nuevo archivo, tengo claro que es "reciente".

Para que cada cliente obtenga del servidor el nuevo archivo, solo necesita incluir en la inclusión / script de su javascript en la página web "?version=1".

Solo es necesario que un parámetro pueda ser ?blue=helloo ?v=1234155sea ​​como lo desee. La importancia es usar un valor diferente cada vez que cambie el javascript. "?version=1"para el primer cambio, "?version=2"para el segundo cambio, es práctico y sencillo conocer el siguiente valor. También puede usar un GUID si lo desea: "?version=4747b320-62ce-11cf-a5d6-28db04c10777"o puede usar la fecha y hora "?version=20130220175025"para 2013/02/20 17:50:25.

Ejemplo 1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

Ejemplo # 2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
Edward López Garbanzo
fuente