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 dát zo stránok

ASP.NET poskytuje plne funkčný cachovací prostriedok, ktorý môže stránka použiť medzi HTTP požiadavkami na uchovanie a vyvolanie ľubovoľných objektov. Vyrovnávacia pamäť ASP.NET je osobitá pre každú aplikáciu a uchováva objekty v pamäti. Životný cyklus vyrovnávacej pamäte zodpovedá životnému cyklu aplikácie; to znamená, že keď je aplikácia reštartovaná, je vyrovnávacia pamäť opätovne vytvorená.

Vyrovnávacia pamäť poskytuje jednoduché slovníkové rozhranie, ktoré dovoľuje programátorom jednoducho umiestniť objekty do vyrovnávacej pamäte a opätovne ich z nej vybrať. V najjednoduchšom prípade je umiestnenie prvku do vyrovnávacej pamäte také isté, ako pridanie prvku do slovníka:


Cache("mykey") = myValue
VB

Vyberanie dát je veľmi jednoduché. Existencia objektu by mala byť skontrolovaná pred vyvolávaním dát z vyrovnávacej pamäte, tak ako je to ukázané v nasledujúcom príklade:


myValue = Cache("mykey")
If Not (myValue Is Nothing) Then
    DisplayData(myValue)
End If
VB

Používanie Data Cache

Nasledujúca ukážka zobrazuje jednoduché používanie vyrovnávacej pamäte. Spúšťa databázový dotaz a cachuje výsledok, ktorý používa počas celého životného cyklu aplikácie. Po spustení ukážky si všimnite správu v spodnej časti stránky. Po prvej požiadavke indikuje, že dáta boli výlučne vyvolané z databázového servera. Po obnovení stránka poukazuje, že bola použitá cachovaná kópia.

VB Data Cache
Run Sample View Source

Ďalší príklad ukazuje cachovaný prvok, ktorý je závislý od XML súboru. Je to podobné prvému príkladu, až nato, že v tomto prípade sú dáta vyvolávané z dátového zdroja XML namiesto databázového servera. Keď sú dáta cachované je XML súbor pridaný do závislosti. Keď je nový záznam pridaný použitím formulára na spodku stránky, je XML súbor aktualizovaný a cachovaný prvok musí byť opätovne vytvorený.

VB Data Cache 2
Run Sample View Source

Všimnite si, že pre pridanie prvku do závislosti sa používa Cache.Insert a nahradením objektu CacheDependency odkazujúci na XML súbor. Rovnaký postup sa používa pre vytvorenie vlastných závislostí.


Cache.Insert("MyData", Source, _
         New CacheDependency(Server.MapPath("authors.xml")))
VB

Cachovaný prvok môže byť závislý na jednom alebo viacerých súboroch alebo kľúčoch. Ako bolo spomenuté predtým, aplikácia môže tak isto nastaviť politiku platnosti pre cachovaný prvok. Nasledujúci kód nastavuje absolutný čas platnosti vyrovnávacej pamäte.


Cache.Insert("MyData", Source, Nothing, _
             DateTime.Now.AddHours(1), TimeSpan.Zero)
VB

Dôležitým parametrom je zavolanie DateTime.Now.AddHours(1), ktorý vyjadruje, že platnosť prvku vyprší o 1 hodinu od okamihu, kedy bol vložený. Posledný argument, TimeSpan.Zero vyjadruje, že neexistuje žiadna relatívna politika platnosti pre tento prvok.

Nasledujúci kód ukazuje ako nastaviť relatívnu politiku platnosti. Kód vkladá prvok, ktorému platnosť vyprší 20 minút po poslednom prístupe. Všimnite si použite DateTime.MaxValue, ktorý ukazuje, že neexistuje absolutná politika platnosti pre tento prvok.


Cache.Insert("MyData", Source, Nothing, DateTime.MaxValue, _
             TimeSpan.FromMinutes(20))
VB

Pre aplikácie, ktoré potrebujú viac sofistikovanejšiu funkčnosť, podporuje vyrovnávacia pamäť ASP.NET očisťovanie, uplynutie platnosti, a závislosť na súbore a kľúči.

Čistenie údajov z vyrovnávacej pamäte

Čistenie znamená, že vyrovnávacia pamäť sa pokúša odstrániť občas používané alebo nevýznamné prvky v prípade, že pamäť bude obmedzená. Programátori, ktorí chcú kontrolovať priebeh čistenia, môžu čistiacej jednotke (scavenger) poskytnúť pokyny, keď sú prvky vložené do vyrovnávacej pamäte, ktoré označujú relatívnu hodnotu vytvorenia prvku a relatívnu intenzitu, s ktorou sa má k prvku pristupovať, aby ostal v platnosti.

Uplynutie platnosti údajov vo vyrovnávacej pamäti

Uplynutie platnosti dovoľuje programátorom nastaviť cachovaným prvkom ich životnosť, ktorá môže byť explicitná (napríklad: skonči o 6:00) alebo môže byť relatívna podľa posledného prístupu k prvku (napríklad: skonči 20 minút po poslednom prístupe k prvku). Po skončení platnosti je prvok odstránený z vyrovnávacej pamäte a nasledujúce pokusy o jeho vyvolanie vrátia hodnotu null pokiaľ nie je prvok opätovne vložený do vyrovnávacej pamäte.

Závislosti vyrovnávacej pamäte

Závislosti vyrovnávacej pamäte dovoľujú, aby bola platnosť cachovaného prvku závislá na externom súbore alebo na nejakom inom cachovanom súbore. Ak sa závislosť zmení, cachovaný prvok sa stane neplatným a je odstránený z vyrovnávacej pamäte. Ako príklad pre použitie tejto závislosti ukážme nasledujúci scenár: aplikácia číta finančné informácie z XML súboru, ktorý je pravidelne aktualizovaný. Aplikácia spracuje údaje zo súboru a vytvorí graf objektov reprezentujúci dáta v spracovateľnom formáte. Aplikácia cachuje dáta a vkladá závislosť na súbore, z ktorého sú dáta čítané. Keď je súbor aktualizovaný, sú dáta odstránené z vyrovnávacej pamäte a aplikácia ich môže opätovne prečítať a vložiť aktualizovanú kópiu dát.

ASP.NET 2.0 sprístupnilo triedu System.Web.Caching.CacheDependency pre odvodzovanie, umožňujúc každému napísať jeho vlastnú implementáciu závislosti vyrovnávacej pamäte. Vývojom Vašej vlastnej závislosti vyrovnávacej pamäte môžete výhodne využiť mechanizmus zbavenia platnosti pre zachovanie cachovaného obsahu aktuálneho s údajmi, ktoré boli použité pre jeho vytvorenie. To je efektívnejší a spoľahlivejší spôsob ako zaručiť platnosť dát a povoliť synchronizáciu vyrovnávacej pamäte naprieč webovými farmami ako používať časté ukončenie platnosti.

ASP.NET poskytuje dve možnosti závislosti postavené na CacheDependency: AggregateCacheDependency, ktorá dovoľuje, aby boli viaceré závislosti zoskupované do komplexných obsahových typov, ktoré sú závislé na viac ako jednom type zdroja, a SqlCacheDependency, ktorá opísaná v sekcii SQL Cache Invalidation .

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.