Monday, October 5, 2009

Caching - Web.config

In tutti i precedenti post, per attivare il caching sulla pagina, è stato inserita la direttiva:

Finchè si parla di esempi o finchè si lavora su una singola pagina possiamo inserire quest'opzione.
Ma se dovessimo lavorare su dozzine di pagine e poi magari modificarle, ciò comporterebbe un lavoro estenuante.

ASP.NET, tramite la feature chiamata cache profiles, ci da la possibilità di applicare gli stessi settaggi ad un gruppo di pagine.
Per usare questa caratteristica definiremo i settaggi della cache in un web.config file, assoceremo un nome a questi settaggi e applicheremo i settaggi alle pagine da tenere in cache:


<configuration>
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="ProductItemCacheProfile" duration="60" varyByParam="ProductItem;Type" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
</configuration>


Ed adesso useremo il profilo appena creato sulle nostre pagine:



<%@ OutputCache CacheProfile="ProductItemCacheProfile" VaryByParam="None" %>


DEBUG


Nel nostro web.config file abbiamo la possibilità di dettagliare ancor di più la sezione .
Molte di queste opzioni sono state create per rendere più semplice la fase di debugging dell'applicazione e non hanno senso in un'applicazione in produzione.
Il tag usato per queste opzioni è: 



<caching>                                  
<cache disableMemoryCollection="true"
disableExpiration="true"
percentagePhysicalMemoryUsedLimit="60"
privateBytesLimit="52428800"
privateBytesPollTime="00:05:00" />
</caching>


  • disableMemoryCollection e disableExpiration: specificano se ASP.NET non deve più tenere in cache copia degli oggetti quando abbiamo poca memoria libera nel server e se gli oggetti scaduti devono essere rimossi.

  • percentagePhysucalMemoryUsedLimit: specifica la percentuale massima di memoria del server che ASP.NET può usare per gli oggetti in cache.
    Specificando 0 gli oggetti verranno eliminati il più velocemente possibile.
     
  • privateBytesLimit: determina il numero massimo di bytes utilizzabili prima che ASP.NET inizi a liberare la memoria.
    Specificando 0 gli oggetti verranno eliminati secondo l'algoritmo interno di ASP.NET.
     
  • privateBytePollTime: indica quanto spesso ASP.NET deve controllare i bytes usati.
    Il valore di default è di 1 secondo.

No comments:

Post a Comment