OutputCacheFilter in Microsoft MVC Preview 4 salva effettivamente sulle invocazioni di azioni?

StackOverflow https://stackoverflow.com/questions/10661

Domanda

Abbiamo implementato un sito vivo, fresco ed elegante utilizzando l'anteprima 3, inclusi rigorosi test di stress.

La memorizzazione nella cache dell'output della pagina è stata il nostro salvatore e ci ha offerto la possibilità di soddisfare i nostri requisiti contrattuali sulle prestazioni.

La mia domanda è: c'è differenza tra l'azione OutputCacheFilter e memorizzazione nella cache dell'output della pagina?

La memorizzazione nella cache dell'output dell'azione è più veloce della memorizzazione nella cache dell'output della pagina?

È stato utile?

Soluzione

Internamente, OutputCacheAttribute (noto anche come filtro della cache di output) utilizza lo stesso meccanismo interno di memorizzazione nella cache dell'output della pagina (ovvero la direttiva @OutputCache).

Pertanto, non è più veloce della memorizzazione nella cache dell'output della pagina.Tuttavia, con MVC, non puoi davvero utilizzare la memorizzazione nella cache dell'output della pagina tramite la direttiva @OutputCache in MVC perché eseguiamo il rendering della vista (nota anche come pagina) Dopo l'azione si svolge.Quindi otterresti ben poco beneficio.

Con il filtro della cache di output, fa la cosa giusta e non esegue il codice dell'azione se il risultato è nella cache di output.Spero che aiuti.:)

Altri suggerimenti

Tieni presente che attualmente esiste un bug se chiami Html.RenderAction(..) su un'azione contrassegnata per essere memorizzata nella cache.Invece di memorizzare nella cache l'azione specifica, viene memorizzata nella cache l'intera pagina.L'ho già segnalato su codeplex e sembra essere un problema noto:Chiamando <% HTML.RenderAction<...>(...);%> a un'azione con [OutputCache(..)] fa sì che l'intera pagina venga memorizzata nella cache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top