2011-01-30 11 views
8

In IIS7 ho la possibilità di impostare le opzioni di memorizzazione nella cache. Queste opzioni vengono aggiunti al mio web.config come tale ...IIS7 WebConfig Caching: quali sono le differenze qui e come si compongono?

<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> 

Tuttavia, ho anche ottenuto il seguente per "caching"

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

Quali sono le differenze tra questi due configurazioni? Sono entrambi nidificati nel tag <system.webServer>, quindi sono entrambi validi per IIS7.

Inoltre, qual è l'approccio giusto quando si utilizzano questi? Attualmente uso solo questa è la mia cartella delle risorse statiche. Non uso questo caching su nient'altro.

Grazie in anticipo.

+0

Chase, sono stati in grado di scoprire più informazioni su questo? StaticContent sembra masticare con i miei profili di cache e sono curioso di qualsiasi informazione che possa essere condivisa. – goodwince

+0

Dopo averlo chiesto, mi sono quasi dimenticato. Vorrei una buona risposta canonica. –

risposta

4

La differenza principale è che il primo caching è lato server (in pratica mantiene l'output della pagina in memoria per le richieste successive), il secondo lato client (saranno incluse le intestazioni di risposta, al browser indica come gestire localmente i file memorizzati nella cache sul computer client).

+0

Se si specifica location = "ServerAndClient" nel tag Aggiungi estensione = ". Png", è possibile memorizzare nella cache sul client e sul server –

0

ho notato che spesso le persone confondono le cose di cui sopra e scrivere articoli in cui raccomandano le cose come nel primo blocco, vale a dire la cache di output per le risorse statiche

Output caching:

cache di output è inutile per file statici, come HTML, JPG o file GIF, e può causare un sovraccarico di memoria per pagine ASP.NET o dinamiche che leggono da un database che cambia frequentemente

Così

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

è inutile almeno quando non si dispone di gestore HTTP ashx per .png o .jpeg, ecc

Problemi correlati