AspNet.sk     Diskusné fóra     Vitajte v QuickStarts     ASP.NET     Silverlight     Ako môžem...? (en)     Class prehliadač Príklady chcem v ...   
Menu
Skip Navigation Links.
Späť na ASP.NET príručku

ASP.NET QuickStart Príručka

Cachovanie výstupu stránky

Cachovanie výstupu je výkonná metóda, ktorá zvyšuje priepustnosť požiadaviek/odpovedí cachovaním obsahu generovaného dynamickými stránkami. Cachovanie výstupu je štandardne povolené, ale výstup z hocijakej danej odozvy nie je cachovaný pokiaľ nie je podniknutá explicitná akcia, ktorá spraví odozvu cachovateľnou.

Na vytvorenie odozvy vhodnej pre cachovanie výstupu, musí mať táto platnú politiku zániku platnosti/kontroly platnosti a verejnú viditeľnosť vyrovnávacej pamäte. Toto sa dá dosiahnuť použitím buď nízko úrovňového OutputCache API alebo vysoko úrovňovej direktívy @ OutputCache. Keď je povolené cachovanie výstupu, je pri prvej požiadavke na stránku GET vytvorený záznam o cachovanom výstupe. Následujúce požiadavky GET alebo HEAD sú podávané zo záznamu o cachovanom výstupe pokiaľ cachovaná požiadavka nevyprší. Výstup vyrovnávacej pamäte tak isto podporuje obmeny cachovaných párov názvov/hodnôt GET alebo POST.

Vyrovnávaca pamäť rešpektuje politiku zániku a kontroly platnosti pre stránky. Ak je stránka vo vyrovnávacej pamäti a bola označená politikou zániku platnosti, ktorá označuje, že stránka vyprší o 60 minút od momentu cachovania, je stránka odstránená z vyrovnávacej pamäte po 60 minútach. Ak je po tomto čase prijatá ďalšia požiadavka, kód stránky je spustený a stránka môže byť opäť cachovaná. Tento typ politiky zániku platnosti je nazývaný absolutný zánik platnosti - stránka je platná po nejaký presne určený čas.

Direktíva Output Cache

Nasledujúci príklad objasňuje jednoduchý spôsob k odozvám výstupu vyrovnávacej pamäte použitím direktívy @ OutputCache. Príklad jednoducho zobrazuje čas, kedy bola odozva vygenerovaná. Aby ste videli cachovanie výstupu v akcii, vyvolajte stránku a všimnite si čas vygenerovania odozvy. Potom obnovte stránku a všimnite si, že čas sa nezmenil, ukazujúc, že druhá odozva bola podaná z vyrovnávacej pamäti.

VB Output Cache
Run Sample View Source

Nasledujúca direktíva aktivuje cachovanie výstupu pri odozve:

<%@ OutputCache Duration="60" VaryByParam="none"%>

Táto direktíva jednoducho ukazuje, že stránka by mala byť cachovaná po dobu 60 sekúnd a že stránka sa neobmeňuje žiadnym z parametrov GET alebo POST. Požiadavky doručené pokiaľ je stránka cachovaná sú vyplnené z vyrovnávacej pamäte. Po 60 sekundách je stránka odstránená z vyrovnávacej pamäte; nasledujúca požiadavka je spracovaná explicitne a opäť cachuje stránku.

Samozrejme, že v predchádzajúcom príklade sa ušetrilo len veľmi málo roboty vďaka cachovaniu výstupu. Nasledujúci príklad ukazuje rovnakú metódu pre cachovanie výstupu, ale dotazuje databázu a zobrazuje výsledky v mriežke.

VB Output Cache 2
Run Sample View Source

Obmeny parametrami

Tu je aplikácia nepatrne upravená pre povolenie užívateľovi selektívne sa dotazovať na autorov v rôznych štádiách. Tento príklad objasňuje cachovanie požiadaviek obmenených pármi názvov/hodnôt v reťazci dotazu použitím atribútu VaryByParam z direktívy @ OutputCache.

<%@ OutputCache Duration="60" VaryByParam="state" %>

Pre každé štádium v súbore dát existuje spojenie, ktoré posiela požadované štádium ako časť reťazca dotazu. Aplikácia potom vytvorí potrebný dotaz na databázu a ukáže autorov patriacich iba k označenému štádiu.

Všimnite si, že keď prvý krát kliknete na prepojenie k danému štádiu, vytvorí sa na spodnej strane stránky časová známka (timestamp). Keď je odvtedy opätovne podaná požiadavka o štádium počas jednej minúty, dostanete originálnu časovú známku (timestamp) označujúcu zmenu požiadavky.

VB Output Cache VaryByParam
Run Sample View Source

SQL Cache Notification Novinka v 2.0

V predošlom príklade boli dáta cachované po dobu 60 sekúnd nezávisle od toho, či niečo zmenilo dáta v databáze. SQL cache invalidation Vám povoľuje vytvoriť záznam vo vyrovnávacej pamäti závislý na databáze tak, že tento záznam bude zrušený ak budú dáta v databáze zmenené. Pre bližšie detaily si pozrite stránku o SQL Cache Notification.

Post-cache Substitution Novinka v 2.0

V ASP.NET 1.0 stránky, ktoré boli statické, ale obsahovali malú dynamickú oblasť, ako napríklad meno užívateľa alebo presný čas, boli často nútené buď nepoužívať cachovanie alebo rozdeliť stránku na viacero užívateľských ovládacích prvkov cachovaným fragment cachingom. ASP.NET 2.0 povoľuje týmto stránkam využiť výhody cachovania výstupu, povolením cachovaným stránkam vložiť dynamický obsah pri každej požiadavke.

V príklade nižšie vkladá stránkam, cachovaná pri výstupe, dynamické spätné volanie (callback) do statickej metódy, ktorá vracia aktuálny dátum pomocou Response.WriteSubstitution API. Toto spätné volanie (callback) spúšťa každú požiadavku a výsledky vkladá do reťaze cachovaných odoziev, ktorá je podávaná z vyrovnávacej pamäte.

VB Post-Cache Substitution
Run Sample View Source

Nasledujúci príklad uskutočňuje presne rovnakú činnosť ako ukážka vyššie, ale používa ovládací prvok asp:Substitution pre vloženie dynamického obsahu.

VB Substitution Control
Run Sample View Source

Používanie Cache API

Aplikácie, ktoré chcú viac kontroly nad HTTP hlavičkami týkajúce sa cachovania môžu využiť funkčnosť poskytovanú triedou System.Web.HttpCachePolicy. Nasledujúci príklad ukazuje kód ekvivalentný k direktívam stránky použitým v predošlých príkladoch.


Response.Cache.SetExpires(Now.AddSeconds(60))
Response.Cache.SetCacheability(HttpCacheability.Public)
VB

Pre vytvorenie pohyblivej politiky zániku platnosti (sliding expiration policy), kde sa čas zániku platnosti znova spúšťa pri každej novej požiadavke, nastavte vlastnosť SlidingExpiration tak, ako je to ukázané v nasledujúcom kóde.


Response.Cache.SetExpires(Now.AddSeconds(60))
Response.Cache.SetCacheability(HttpCacheability.Public)
Response.Cache.SetSlidingExpiration(True)
VB

Poznámka: Pri povolení pohyblivého zániku platnosti (SetSlidingExpiration(true) ) generuje požiadavka vytvorená na pôvodný server odozvu. Pohyblivý zánik platnosti je využiteľný v scenároch, kde existujú downstream caches, ktoré uspokojujú klientové požiadavky, ak ešte platnosť obsahu nevypršala, bez vyžiadania obsahu z pôvodného servera.
Microsoft .NET Framework SDK QuickStart Tutorials Version 2.0
Copyright © 2005 Microsoft Corporation. All rights reserved.
Preklad do slovenského jazyka - Copyright © 2005 - 2007 www.aspnet.sk, www.qsh.sk
Pošlite komentár k tejto stránke
Copyright © 2002 - 2008 Chastia, spol. s r. o., Igor Stanek, Designed by Lacino
Portál je hostovaný na serveroch firmy Quantasoft - www.qsh.sk.