L'utilizzo delle classe Cache permette di evitare continue richieste al database (o a qualsiasi altra fonte, come un file XML), salvando qualsiasi oggetti in memoria, per un accesso rapido.
In genere si aggiunge un oggetto in Cache, definendo un delegate in modo che venga ripopolata l'oggetto attraverso un RemovedCallback, ovvero quando lo stesso viene rimosso dalla memoria.
Un approccio migliore consiste nel definire una funzione che agisca come in questo esempio, che sia cioè in grado di aggiungere l'oggetto in memoria alla prima richiesta, o comunque solo quando necessario.
In questo modo si può evitare di tenere in memoria un oggetto che in quel momento nessuno sta usando, contando sulla possibilità di impostare un tempo di permanenza (nell'esempio 3 ore).
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace ASPItalia.com
{
public class DataStore
{
// funzione per recuperare un DataTable
public static DataTable GetArticles()
{
if (HttpContext.Current.Cache["Article"] == null) {
DataTable dt = GetDt(); // restituisce la DataTable
HttpContext.Current.Cache.Insert("Article", dt, null, DateTime.Now.AddHours(3), TimeSpan.Zero);
}
return (DataTable)HttpContext.Current.Cache["Article"];
}
}
}Per approfondimenti si veda:
L'oggetto Cache di ASP.NET
http://www.aspitalia.com/articoli/aspplus/cache.aspx
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.









Stampa
Snippet
Download 



