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

Autore:


blog comments powered by Disqus

 

Calendar

<<  November 2017  >>
MonTueWedThuFriSatSun
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar