Я пытаюсь кэшировать разделы меню навигации в соответствии с разными критериями.
Например, новости и статьи необходимо обновлять на основе продолжительности, тогда как элементы входа и профиля должны быть кэшированы для каждого пользователя.
Я рассматриваю 2 варианта - кто-нибудь будет достаточно любезен, чтобы рассказать мне о плюсах и минусах каждого? И если возможно, предложите лучший подход!
Вариант 1.
Просто кэшируйте все необходимые html как строки в кэше данных. При необходимости проверьте различия пользователей вручную.
I (возможно, неверно) представьте, что это будет самая большая работа по реализации, но также и самый эффективный способ кэширования различных разделов.
Вариант 2.
У вас есть NavigationController с различными дочерними действиями для каждого раздела меню. (Мы можем применить другой файл outputCacheProfile для каждого дочернего действия по мере необходимости.)
Но это потребует от нас вызова отдельного RenderAction для каждого раздела меню навигации. И я беспокоюсь об этом из-за комментария на одном из сообщений блога Фила Хаака:
[Render Action] очень похоже на другой запрос, так как мы необходимо выполнить маршрутизацию, чтобы убедиться, что у нас есть соответствующий маршрут данных и контекста для вызова метода действия. Поэтому каждый призыв к RenderAction собирается сложить.
Полное сообщение здесь: http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx