我想添加緩存到某些子動作,所以我可以單獨緩存部分單個頁面。MVC:OutputCache和極慢的RenderPartial
我需要同樣的控制器的方法是可訪問無論從AJAX並用RenderAction
(或一些其它嵌入方法)。
我已更改我的代碼以使用RenderAction
,並且我發現每個Html.RenderAction
都會在頁面加載時間增加大約1秒,因爲第一次加載非常緩慢 - 很難享受後續加載的成果。
我在這裏見過這樣的答案,建議遠離RenderAction
了......
那麼,什麼是迴避的RenderAction
滯後,仍然能夠緩存,並有一個方法我可以最好的策略來自HTML和AJAX的呼叫? (以及在這種情況下如何處理緩存失效?)
是的,有時是'JsonResult',有時是'View'。我使用Razor引擎 - 緩存的服務時間很長,但第一次加載的速度非常緩慢。是的,使用OutputCache與VaryByParam(有很多參數..編輯:6) – Madd0g 2012-03-02 08:52:50
你不應該有太多的參數,因爲緩存將使用太多的內存。它會回收第一個緩存的項目並減慢頁面的速度。緩存memoryUsed = viewText^paramValuesCount。如果paramsCount = 6並且paramValuesCount = 1000使用內存= 10K^6000 =溢出)並且緩存......只要它被緩存就可以回收項目。 – Softlion 2012-03-05 09:14:58
目前我更擔心'RenderPartial'的性能,問題的緩存部分更多的是概念性的,如何在使用輸出緩存時進行DRY – Madd0g 2012-03-05 15:45:46