Substitution Class

di Andrea Zani, in .NET2,

Ancora alla ricerca delle novità di asp.net 2.0 ecco che mi ritrovo dinanzi il webcontrol Substitution... e che è? Penso a qualche classe per la gestione delle stringhe con regular expression e divertimenti simili... ma mi sbagliavo: è un webcontrol utilissimo soprattutto se si utilizza spesso mettere in cache tutta la pagina e per gli amanti della cache (come Daniele).

Siccome penso che un esempio valga più di mille (mie) parole, ecco qui questo webcontrol all'opera:

<%@ page language="C#" %>
<%@ OutputCache Duration="10" VaryByParam="none" %>
<script runat="server"><p />void  Page_Load(object sender, EventArgs e)
{
    Label1.Text = DateTime.Now.ToString();
}
public static string Aggiorna(HttpContext context)
{
        return DateTime.Now.ToString();
}
</script>
<html>
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
   <asp:Label ID="Label1" Runat="server" />
   <br />
   <asp:Substitution ID="Substitution1" Runat="server" MethodName="Aggiorna" />
   <br />
    </form>
</body>
</html>

Nelle direttive della pagina è stato impostata la cache di 10 secondi, in modo che dopo la prima richiesta sarà sempre restituita per i sucessivi 10 secondi sempre la stessa pagina.

Nella prima "Label" viene inserita data e ora, e questa rimarrà fissa per quell'intervallo di tempo, ma se inseriamo il webControl Substitution possiamo aggiornare ad ogni richiesta anche se la cache è attiva una sezione della pagina.

Nel webcontrol è impostato la proprietà "MethodName", la funzione - che deve restituire una stringa - dichiarato sarà richiamato ad ogni richiesta della pagina e la stringa ritornata dalla funzione sarà inserito in quel punto della pagina.

Infatti, se richiamiamo il codice qui sopra, per 10 secondi la prima label visualizzerà sempre lo stesso risultato, mentre al posto del webcontrol Substitution, sarà aggiorata ad ogni richiesta la data e ora...

Notevole...

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.

Nella stessa categoria
I più letti del mese