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