OutputCache con dipendenza da un oggetto

di Daniele Bochicchio, in ASP.NET, Cache, C#,

L'OutputCache è uno dei meccanismi più interessanti di ASP.NET, perchè permette di tenere in cache una pagina già eseguita a seconda di diversi parametri.
Oltre che con la direttiva OutputCache, è possibile specificare le policy anche da codice, in maniera programmatica, attraverso Response.Cache.
In particolare, l'oggetto HttpResponse ha un metodo AddCacheItemDependency che permette di impostare una dipendenza della pagina ad un oggetto.
Ritorna molto comodo, perchè è così possibile tenere in cache una pagina, oltre che per il tempo impostato, anche in base ad un oggetto, assicurandoci che il contenuto mostrato sia sempre aggiornato.
Ecco quindi un esempio:

<SCRIPT language="C#" runat="server">

void Page_Load() {
  // cache sul server
  Response.Cache.SetCacheability(HttpCacheability.Server);
  Response.Cache.VaryByParams.IgnoreParams = true;

  // scadenza
  Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));

  // lega ad oggetto di nome "dati"
  Response.AddCacheItemDependency("dati");

  // scrivo a video l'ora
  Response.Write(Cache["dati"].ToString());
  Response.Write("<br>" + DateTime.Now.ToString());
}
</SCRIPT>

L'oggetto in Cache di nome "dati" contiene l'ora corrente e serve per confrontarlo con il tempo di esecuzione, scritto in basso. Noterete che entrambi, a parte la prima esecuzione, non cambiano poi.
Se si prova a modificare l'oggetto in Cache, la pagina verrà ricaricata.
E' utile sottolineare come questa impostazione non sia possibile nella direttiva, anche se è possibile combinarla con una dichiarazione attraverso la direttiva.

Per approfondimenti sulla Cache si veda:
https://www.aspitalia.com/ricerca/super.aspx?usag=1&key=Cache

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi