Seleziona una pagina

In questo post conosceremo il Cache TagHelper, questo TagHelper si occupa di inserire del codice nella cache (MemoryCache) per un periodo di tempo.

image

Il Cache TagHelper mette a disposizione i seguenti attributi:

  • enabled
  • expires-after
  • expires-on
  • expires-sliding
  • priority
  • vary-by
  • vary-by-cookie
  • vary-by-header
  • vary-by-query
  • vary-by-route
  • vary-by-user

Attributo enabled

L’attributo enabled è un booleano che serve per attivare o disattivare la cache.

Attributo expires-after

L’attributo expires-after serve ad indicare dopo quanto tempo la Cache verrà liberata dalla memoria:

<cache enabled="true" expires-after="@TimeSpan.FromSeconds(10)">
  1  @DateTime.Now
</cache>
  

Attributo expires-on

L’attributo expires-on serve ad indicare il momento in cui la Cache verrà liberata dalla memoria.

<cache enabled="true" expires-on="@DateTime.Today.AddSeconds(20)">
  2  @DateTime.Now
</cache>

Attributo expires-sliding

L’attributo expires-sliding serve ad indicare che la Cache verrà liberata dalla memoria se non viene acceduta dal tempo indicato.

<cache enabled="true"  expires-sliding="@TimeSpan.FromMinutes(1)">
    3  @DateTime.Now
</cache>
  

Attributo proprity

L’attributo priority serve ad indicare che la priorità con cui  il sistema gestirà la Cache:

Nel caso in cui il sistema abbia bisogno di liberare memoria, incomincerà a liberare gli elementi presenti nella cache con priorità più bassa.

I Livelli di priorità previsti sono:

  • Low
  • Normal
  • High
  • NeverRemove
<cache enabled="true" expires-after="@TimeSpan.FromMinutes(10)" priority="@CacheItemPriority.High">
  1  @DateTime.Now
</cache>
  
Attributo vary-by
L’attributo vary-by serve ad indicare il campo in base al quale verranno mantenuti in cache contenuti differenti.
<cache enabled="true"  vary-by="@ViewBag.ProductId">
    3  @DateTime.Now
</cache>
  
Attributo vary-cookie
L’attributo vary-cookie permette inserire nella cache contenuti differenti in base al valore di uno o più specifichi cookies:
<cache enabled="true"  vary-by-cookie="cookieName">
    3  @DateTime.Now
</cache>
  
Attributo vary-header
L’attributo vary-header permette inserire nella cache contenuti differenti in base al valore presente nell’header della request:
<cache enabled="true" vary-by-header="User-Agent">
    3  @DateTime.Now
</cache>
  
Attributo vary-query
L’attributo vary-query permette inserire nella cache contenuti differenti in base al valore presente nei parametri passati come querystring:
<cache enabled="true" vary-by-query="search">
    3  @DateTime.Now
</cache>

  
Attributo vary-route
L’attributo vary-route permette inserire nella cache contenuti differenti in base al valore presente nella route utilizzata:
<cache enabled="true" vary-by-route="id">
    3  @DateTime.Now
</cache>

  
Attributo vary-user
L’attributo vary-user permette inserire nella cache contenuti differenti in base all’utente loggato:
<cache enabled="true" vary-by-user="true">
    3  @DateTime.Now
</cache>
  

Per chi volesse approfondire e/o visualizzare il codice sorgente del TagHelper, può andare direttamente sul repository su GitHub a questo indirizzo:

https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/CacheTagHelper.cs

Happy Coding Winking smile

Altri Articoli

ASP.NET Core MVC Select TagHelper
views 9
In questo post conosceremo il Select TagHelper questo TagHelper si occupa di generare una casella di selezione con la possibilità di associare le opzi...
ASP.NET Core e Yeoman
views 5
In questo articolo vedremo come utilizzare Yeoman per creare un progetto ASP.NET Core. Innanzitutto cos’è Yeoman? Yeoman è uno strumento che permette...
ASP.NET Core MVC Input TagHelper
views 1
In questo post conosceremo l’Input TagHelper, questo TagHelper si occupa di generare un campo di tipo input. L’Input TagHelper mette a disposizione...
ASP.NET Core MVC Image TagHelper
views 10
In questo post conosceremo l’Image TagHelper, questo TagHelper si occupa di inserire un immagine all’interno della pagina. L’image TagHelper mette ...

Sono uno sviluppatore specializzato nella realizzazione di applicazioni web ASP.NET. Mi ritengo una persona fortunata perchè il mio lavoro coincide con la mia passione: Sviluppare codice!!! Ho incominciato a sviluppare codice dall’età di circa dieci anni con il famigerato Commodore 64. La mia svolta epocale è stato l’avvento di internet e dal 1995 ho cominciato a sviluppare siti web prima statici e poi dinamici (ASP) per poi approdare alla piattaforma .NET, da allora… non mi sono piu’ fermato!