O OutputCacheFilter no Microsoft MVC Preview 4 realmente economiza em invocações de ação?
-
08-06-2019 - |
Pergunta
Implantamos um site ativo, novo e sofisticado usando a visualização 3, incluindo testes de estresse rigorosos.
O cache de saída de página foi nosso salvador e nos proporcionou a capacidade de atender aos nossos requisitos contratuais de desempenho.
Minha pergunta é: existe alguma diferença entre ação OutputCacheFilter
e cache de saída de página?
O cache de saída da ação é mais rápido que o cache de saída da página?
Solução
Internamente, o OutputCacheAttribute (também conhecido como filtro de cache de saída) usa o mesmo mecanismo interno que cache de saída de página (também conhecida como diretiva @OutputCache).
Portanto, não é mais rápido que o cache de saída de página.No entanto, com MVC, você realmente não pode usar o cache de saída de página por meio da diretiva @OutputCache no MVC porque renderizamos a visualização (também conhecida como página) depois a ação é executada.Portanto, você ganharia muito pouco benefício.
Com o filtro de cache de saída, ele faz a coisa certa e não executa o código de ação se o resultado estiver no cache de saída.Espero que ajude.:)
Outras dicas
Esteja ciente de que atualmente há um bug se você chamar Html.RenderAction(..) em uma ação marcada para ser armazenada em cache.Em vez de a ação específica ser armazenada em cache, a página inteira é armazenada em cache.Já relatei isso no codeplex e parece ser um problema conhecido:Chamando <% HTML.RenderAction<...>(...);%> para uma ação com [OutputCache(..)] faz com que a página inteira seja armazenada em cache.