Il Fragment Caching è una funzionalità introdotta sin dalla prima versione di ASP.NET che consente di tenere in cache solo un frammento, in genere uno User Control, in modo che l'output (HTML) risultante non venga generato ogni volta.
Di contro è possibile tenere in cache anche un'intera pagina, ma poi in questo modo si perde la possibilità per alcune aree di essere sempre aggiornate.
A partire dalla versione 2.0 è stato introdotto un nuovo meccanismo, noto con il nome di Post Cache Substitution, che consente di definire zone specifiche nella pagina che non saranno tenute in cache, ma aggiornate ad ogni caricamento.
Il sistema più immediato per mettere in pratica questa tecnica è quello di utilizzare il control Substitution, la cui proprietà MethodName accetta il nome di una funzione che farà da Callback.
La funzione deve essere statica e restituire una stringa:
<%@ OutputCache location="server" duration="60" VaryByParam="none" %> <form runat="server"> Parte in cache: <asp:label id="date" runat="server" /><br /> Parte aggiornata: <asp:Substitution runat="server" MethodName="GetCurentDate" /> </form> <script runat="server" language="C#"> void Page_Load() { date.Text = DateTime.Now.ToString(); } static string GetCurentDate(HttpContext context) { return DateTime.Now.ToString(); } </script>
Per approfondimenti sulle novità della Cache in ASP.NET 2.0 si veda:
I meccanismi di caching in ASP.NET 2.0
https://www.aspitalia.com/articoli/asp.net2/caching.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Short-circuiting della Pipeline in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Implementare il throttling in ASP.NET Core
Load test di ASP.NET Core con k6