Должен ли я использовать Data Cache или Output Cache для сложного меню навигации?

Я пытаюсь кэшировать разделы навигационного меню в соответствии с различными критериями.

Например, новости и статьи должны обновляться на постоянной основе, тогда как данные для входа в систему и профиля должны кэшироваться для каждого пользователя.

Я рассматриваю 2 варианта - будет ли кто-нибудь достаточно любезен, чтобы рассказать мне о плюсах / минусах каждого? И, если возможно, предложите лучший подход!

Опция 1.

Просто кэшируйте все необходимые HTML в виде строк в кэше данных. При необходимости проверяйте различия между пользователями вручную.

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

Вариант 2

Имейте NavigationController с различными дочерними действиями для каждого раздела меню. (Мы можем применить различный outputCacheProfile к каждому дочернему действию при необходимости.)

Но это потребует от нас вызова отдельного действия RenderAction для каждого раздела меню навигации. И я'Я беспокоюсь об этом из-за комментария по одному из Фил ХаакСообщения в блоге:

[Render Action] очень похож на выполнение другого запроса, так как нам нужно выполнить маршрутизацию, чтобы убедиться, что у нас есть соответствующие данные маршрута и контекст для вызова метода действия. Таким образом, каждый вызов RenderAction будет суммироваться.

Полный пост здесь:http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx

Ответы на вопрос(1)

Ваш ответ на вопрос