MVC: OutputCache и чрезвычайно медленный RenderPartial - PullRequest
1 голос
/ 02 марта 2012

Я хочу добавить кэширование для определенных дочерних действий, чтобы я мог отдельно кэшировать части одной страницы.

Мне нужен один и тот же метод контроллера, чтобы он был доступен как из AJAX, так и из RenderAction (или некоторых других).другой метод встраивания).

Я изменил свой код, чтобы использовать RenderAction, и я обнаружил, что каждый Html.RenderAction добавляет около 1 секунды к времени загрузки страницы, когда первая загрузка настолько медленная - этоТрудно наслаждаться плодами последующих нагрузок.

Я видел ответы здесь на SO, советующие держаться подальше от RenderAction ...

Итак, какова лучшая стратегия обходаRenderAction задержка и возможность кэшировать И иметь единственный метод, который я могу вызвать как из HTML, так и из AJAX?(и .. как справиться с аннулированием кэша в этом случае?)

1 Ответ

1 голос
/ 02 марта 2012

Что здесь делает ajax? Возвращаете ли вы JSonResult, если вызывается из ajax и ViewResult для обычных вызовов?

Попробуйте использовать RenderAction с бритвой. Двигатель бритвы быстрее. Когда результат кэшируется, рендеринг происходит очень быстро (x1000).

Для кеширования вы используете атрибут [OutputCache]? Если это так, вы не можете аннулировать кеш самостоятельно (или я не знаю об этом).

Или, может быть, вы используете OutputCache с параметрами VaryByParam, который ненамного умножает кэши в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...