OutputCacheFilter in Microsoft MVC Preview 4 salva effettivamente sulle invocazioni di azioni?
-
08-06-2019 - |
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?
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.