pomocná značka značky v ASP.NET Core MVC
pomocník značek Cache poskytuje možnost zlepšit výkon aplikace ASP.NET Core ukládáním obsahu do mezipaměti interního poskytovatele mezipaměti ASP.NET Core.
Přehled pomocníků značek naleznete v tématu Pomocná zařízení značek v ASP.NET Core .
Následující Razor kód ukládá do mezipaměti aktuální datum:
<cache>@DateTime.Now</cache>
První požadavek na stránku, která obsahuje pomocníka značek, zobrazí aktuální datum. Další požadavky zobrazí hodnotu uloženou v mezipaměti, dokud nevyprší platnost mezipaměti (výchozí 20 minut) nebo dokud nebude datum v mezipaměti vyřazeno z mezipaměti.
Pomocné atributy značek mezipaměti
enabled
| Typ atributu | Příklady | Výchozí |
|---|---|---|
| Logická hodnota | true, false |
true |
enabled Určuje, zda je obsah uzavřený pomocníkem značky mezipaměti uložen do mezipaměti. Výchozí formát je true. Pokud je nastaveno na false , Vykreslený výstup není uložen v mezipaměti.
Příklad:
<cache enabled="true">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
vyprší – dne
| Typ atributu | Příklad |
|---|---|
DateTimeOffset |
@new DateTime(2025,1,29,17,02,0) |
expires-on Nastaví absolutní datum vypršení platnosti pro položku uloženou v mezipaměti.
Následující příklad ukládá do mezipaměti obsah pomocné rutiny značky cache až 5:02 PM, který je 29. ledna 2025:
<cache expires-on="@new DateTime(2025,1,29,17,02,0)">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
platnost vyprší – po
| Typ atributu | Příklad | Výchozí |
|---|---|---|
TimeSpan |
@TimeSpan.FromSeconds(120) |
20 minut |
expires-after nastaví dobu od první žádosti o dobu ukládání obsahu do mezipaměti.
Příklad:
<cache expires-after="@TimeSpan.FromSeconds(120)">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
RazorModul zobrazení nastaví výchozí expires-after hodnotu na 20 minut.
konec platnosti – klouzavé
| Typ atributu | Příklad |
|---|---|
TimeSpan |
@TimeSpan.FromSeconds(60) |
Nastaví čas, kdy by měla být položka mezipaměti vyřazena, pokud k její hodnotě nedojde.
Příklad:
<cache expires-sliding="@TimeSpan.FromSeconds(60)">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
různé – podle záhlaví
| Typ atributu | Příklady |
|---|---|
| Řetězec | User-Agent, User-Agent,content-encoding |
vary-by-header přijímá seznam hodnot hlaviček oddělených čárkami, které aktivují aktualizaci mezipaměti, když se změní.
V následujícím příkladu je sledována hodnota hlavičky User-Agent . Příklad ukládá obsah do mezipaměti pro všechny různé User-Agent prezentované webovému serveru:
<cache vary-by-header="User-Agent">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
v závislosti na dotazu
| Typ atributu | Příklady |
|---|---|
| Řetězec | Make, Make,Model |
vary-by-query přijme Keys v řetězci dotazu () seznam oddělený čárkami ( Query ), který aktivuje aktualizaci mezipaměti, když hodnota jakékoli v uvedených klíčových změnách.
Následující příklad sleduje hodnoty Make a Model . Tento příklad ukládá obsah do mezipaměti pro všechny různé Make a Model prezentované webovému serveru:
<cache vary-by-query="Make,Model">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
různé – podle směrování
| Typ atributu | Příklady |
|---|---|
| Řetězec | Make, Make,Model |
vary-by-route přijme seznam názvů parametrů trasy oddělených čárkami, které aktivují aktualizaci mezipaměti při změně hodnoty parametru dat trasy.
Příklad:
Startup. cs:
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{Make?}/{Model?}");
Index. cshtml:
<cache vary-by-route="Make,Model">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
různé – podlecookie
| Typ atributu | Příklady |
|---|---|
| Řetězec | .AspNetCore.Identity.Application, .AspNetCore.Identity.Application,HairColor |
vary-by-cookie přijme seznam názvů oddělených čárkami cookie , které při změně hodnot spouštějí aktualizaci mezipaměti cookie .
Následující příklad sleduje cookie přidruženou k ASP.NET Core Identity . Když je uživatel ověřený, změna v Identity cookie aktivační události spustí aktualizaci mezipaměti:
<cache vary-by-cookie=".AspNetCore.Identity.Application">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
různé – podle uživatele
| Typ atributu | Příklady | Výchozí |
|---|---|---|
| Logická hodnota | true, false |
true |
vary-by-user Určuje, zda je mezipaměť obnovena při změně přihlášeného uživatele (nebo objektu zabezpečení kontextu). Aktuální uživatel je také známý jako objekt zabezpečení kontextu požadavku a lze jej zobrazit v Razor zobrazení odkazem @User.Identity.Name .
Následující příklad sleduje aktuálně přihlášeného uživatele, aby aktivoval aktualizaci mezipaměti:
<cache vary-by-user="true">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
Použití tohoto atributu udržuje obsah v mezipaměti prostřednictvím cyklu přihlášení a odhlášení. Pokud je hodnota nastavena na true , cyklus ověřování neověřuje mezipaměť pro ověřeného uživatele. Platnost mezipaměti je zrušena, protože cookie při ověření uživatele je vygenerována nová jedinečná hodnota. Mezipaměť je udržována pro anonymní stav, pokud cookie není přítomna nebo cookie vypršela její platnost. Pokud uživatel není ověřený, zachová se mezipaměť.
různé – podle
| Typ atributu | Příklad |
|---|---|
| Řetězec | @Model |
vary-by umožňuje přizpůsobení dat uložených v mezipaměti. Pokud se změní objekt odkazovaný hodnotou řetězce atributu, je aktualizován obsah pomocné rutiny značky cache. K tomuto atributu jsou často přiřazeny řetězcové zřetězení hodnot modelu. To má za následek situaci, kdy aktualizace jakékoli zřetězené hodnoty neověřuje mezipaměť.
Následující příklad předpokládá, že metoda kontroleru vykreslování zobrazení sečte celočíselnou hodnotu dvou parametrů trasy myParam1 a myParam2 vrátí součet jako vlastnost jednoho modelu. Při změně tohoto součtu se obsah pomocné rutiny značky mezipaměti vykresluje a ukládá do mezipaměti znovu.
Akce:
public IActionResult Index(string myParam1, string myParam2, string myParam3)
{
int num1;
int num2;
int.TryParse(myParam1, out num1);
int.TryParse(myParam2, out num2);
return View(viewName, num1 + num2);
}
Index. cshtml:
<cache vary-by="@Model">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
upřednostněn
| Typ atributu | Příklady | Výchozí |
|---|---|---|
CacheItemPriority |
High, Low, NeverRemove, Normal |
Normal |
priority poskytuje pokyny k vyřazení mezipaměti do integrovaného poskytovatele mezipaměti. Webový server Low nejprve vyřadí položky mezipaměti, když dojde k přetížení paměti.
Příklad:
<cache priority="High">
Current Time Inside Cache Tag Helper: @DateTime.Now
</cache>
priorityAtribut nezaručuje konkrétní úroveň uchovávání mezipaměti. CacheItemPriority je pouze návrh. Nastavením tohoto atributu se NeverRemove nezaručí, že položky uložené v mezipaměti jsou vždycky zachované. Další informace najdete v tématech v části Další zdroje informací.
Pomocník značek cache je závislý na službě mezipaměť paměti. Pomocník značek cache přidá službu, pokud nebyla přidána.