2011-01-30 12 views
8

En IIS7 tengo la capacidad de configurar las opciones de almacenamiento en caché. La suma de las opciones a mi web.config como tal ...Almacenamiento en caché Web.Config de IIS7: ¿cuáles son las diferencias aquí y cómo se combinan todas?

<caching maxCacheSize="262144"> 
     <profiles> 
      <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
      <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" /> 
     </profiles> 
    </caching> 

Sin embargo, también tengo lo siguiente para "caching"

<staticContent> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" /> 
     <remove fileExtension=".js" /> 
     <mimeMap fileExtension=".js" mimeType="text/javascript" /> 
    </staticContent> 

¿Cuáles son las diferencias entre estas dos configuraciones? Ambos están anidados en la etiqueta <system.webServer>, por lo que ambos son válidos para IIS7.

Además, ¿cuál es el enfoque correcto al usar estos? Actualmente solo uso esta es mi carpeta de activos estáticos. No uso este almacenamiento en caché en ninguna otra cosa.

Gracias de antemano.

+0

Chase, que fueron capaces de encontrar más información sobre esto? Parece que StaticContent se está volcando con mis perfiles de almacenamiento en caché y tengo curiosidad acerca de cualquier información que pueda compartirse. – goodwince

+0

Después de preguntar, me olvidé de eso. Me gustaría una buena respuesta canónica. –

Respuesta

4

La principal diferencia es que el primer almacenamiento en caché es del lado del servidor (básicamente mantiene el resultado de la página en la memoria para las solicitudes posteriores), el segundo es del lado del cliente (se incluirán los encabezados de respuesta, le dice al navegador cómo administrar localmente los archivos en caché en la máquina del cliente).

+0

Si especifica location = "ServerAndClient" en la etiqueta add extension = ". Png", puede almacenar en caché el cliente y el servidor –

0

me he dado cuenta de que las personas a menudo confunden las cosas de arriba y escriben artículos en los que recomiendan cosas como en el primer bloque, es decir, el almacenamiento en caché de salida de recursos estáticos

Output caching:

almacenamiento en caché de salida es innecesaria para archivos estáticos, como HTML, JPG o archivos GIF, y puede causar más sobrecarga de memoria para páginas ASP.NET dinámicas o que leen desde una base de datos que cambia con frecuencia

Así

<add extension=".png" ../> 
<add extension=".jpeg" ../> 
etc. 

es inútil, al menos, cuando usted no tiene ashx controlador HTTP para .png o .jpeg, etc.

Cuestiones relacionadas