» »

Asp .Net page output caching - osvežitev cache-a ob akciji

Asp .Net page output caching - osvežitev cache-a ob akciji

Andruxa ::

malo se igram s page output cachingom, ker mi ni všeč varianta da bi delal preko timeout-a. Zagato sem precej podrobno opisal tule:

page output caching

ubistvu me najbolj zanima ce bi se moral problem lotiti drugace, oz. neka delujoca varianta. Zanima me tudi ali kdo pozna kaksen pameten nacin da bi namesto tega kar kreiral staticne html strani (to varianto sem ene parkrat videl na portalih v phpju) ki bi jih potem prebral in serviral kadar ne bi bilo potrebno code behind procesiranje. (to zadnje zato ker sem zelo zelo zelo omejen tako s procesorjem kot s spominom, moram zminimizirat oboje)

Na data layerju imam caching ze implementiran preko System.Web.Caching.Cache class-a in deluje ok. Vendar je se vedno prevec procesiranja .... rabim nekako preskociti rendering res povsod kjer ni nujen in to na nek pameten nacin, tisti timeout je za moje pojme veliko premalo natancen + najbolje bi bilo ce bi lahko pripravil strani ze vnaprej, ne pa ob prvem kliku. Ideje, napotki, nasveti dobrodosli ...

lp,a
Lp, A

darkolord ::

Hmmm tkole na pamet, pomoje bi se dal s Response.AddCacheItemDependency oz Response.AddCacheDependency... Pač narediš en key (brez vsebine) in ga dodaš v Cache, od katerega je odvisen ta page. Potem ko invalidiraš page, pa iz cacha pobrišeš še vse prejšnje keye in vsi prejšnji pagei se invalidirajo.

Neki tazga :)

Andruxa ::

ja no sej ravno o tem nacinu govorim v svojem postu, ki sem ga polinkal. Samo je problem da mi ne dela tako kot bi moralo ...
Lp, A

darkolord ::

A VaryByParam ti ne dela tudi, če daš deklaracijo na vrh strani?

<%@ OutputCache Location="Server" Duration="60" VaryByParam="page" %>

Andruxa ::

ja, vseeno je. Sem poskusil na ta nacin. Mi pa dela caching tako kot sem ga definiral v code behindu, samo ce ne specificiram VaryByParam (in potem pridno cachira vse variante strani glede na query string). Samo je pa problem ker ne uposteva odvisnosti od tistega key-a (AddCacheItemDependency) in strani ostanejo v cache-u do timeout-a. Key se gotovo spremeni, ker ga sproti preverjam. Poskusil sem na dva nacina, da tisti key v cachu modificiram ali da ga kar odstranim iz cache-a. V obeh primerih page output cache ne trzne.

Ali je kaksen nacin da bi rocno dostopal do tega page output cache-a, ker mi default funkcionalnost itak ne zadosca ali pa da bi sam nekako cachiral page kamorkoli ze, v bazo ali datoteko?
Lp, A

darkolord ::

Dej vklopi VaryByParam pa probaj uporabit en drug ključ namesto "all".

Sicer pa, če bi rad ročno za vsak request kontroliral, al se invalidira cache ali ne (oz ali stran izvede v tem primeru, cache pa pusti na miru), lahko uporabiš Cache.AddValidationCallback.

Andruxa ::

sori za delay, je bil fusbal zdele tri dni :P

Torej na koncu sem naredil takole (zasluga darkolorda za namig, ki mi je stvar na koncu resila v ene 10 minutah) bistvo je tale AddValidationCallback, potem gre pa brez problemov, ker se ta stvar poklice vsakic pred validacijo kesa ....

sicer s tisto varianto z dependecy-ji pa ni slo pa da se ubijes ... kriza. zgubu sm dva dni.

hvala
Lp, A


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Caching browserji

Oddelek: Programiranje
81147 (813) smacker
»

[JS] Event, ko se stran naloži po "back" gumbu?

Oddelek: Programiranje
292540 (1808) Spura
»

Nasveti glede API-ja

Oddelek: Programiranje
111156 (696) Arey
»

Optimizacija API-ja

Oddelek: Programiranje
161842 (1075) AndrejS
»

[baze] Povezava do slike ali BLOB?

Oddelek: Programiranje
101631 (1428) BlueRunner

Več podobnih tem