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 SignalR: Differenze con la versione p...
views 375
La nuova versione di ASP.NET Core SignalR non è compatibile sia per la parte Server che per la parte Client alla versione precedente ASP.NET SignalR. ...
Novità ASP.NET Core 2 (Preview 2)
views 245
Lo scorso 28 giugno è stata rilasciata la Preview 2 di ASP.NET Core 2. Le principali novità della nuova versione ASP.NET Core sono: Razor Pages...
ASP.NET Core HTML Minifier Middleware
views 151
In questo articolo vedremo come realizzare un Custom Middleware per la minificazione del codice HTML. Nel precedente articolo ASP.NET Core custom M...
ASP.NET Core MVC Image TagHelper
views 149
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!