Есть ли условное кэширование в ASP.NET? - PullRequest
0 голосов
/ 28 мая 2009

Есть ли встроенный способ asp.net для условного обслуживания страниц, например, я хочу следующую логику:

Если есть данные сеанса, которые я генерирую страница, если нет данных сеанса я обслуживать кэшированную страницу.

Меня интересует только встроенный механизм asp.net для этого. Если он не существует, я, вероятно, просто кэширую свою страницу вручную и решу, обслуживать ее или нет для каждого запроса, в зависимости от доступности данных сеанса.

Ответы [ 3 ]

2 голосов
/ 28 мая 2009

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

Как вы предлагаете, я бы рекомендовал вручную кэшировать страницы. Возможно, я бы определил состояние сеанса пользователя в обработчике события PreRequestHandlerExecute в Global.asax, а затем, возможно, установлю:

HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
0 голосов
/ 28 мая 2009

Возможно, вы захотите взглянуть на элемент управления подстановкой (http://geekswithblogs.net/ranganh/archive/2005/05/04/39003.aspx) новый в .NET 2.0, однако он может быть не совсем тем, что вы ищете.

0 голосов
/ 28 мая 2009

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

Для меня, если сделан запрос GET, тогда сервер должен ответить на него добросовестно. Кэширование на уровне страницы должно контролироваться заголовками http, потому что основная цель не состоит в том, чтобы вообще получить избыточный запрос - вы не хотите выделять ресурсы сервера / полосы пропускания полной остановкой.

Кэширование объектов, которые являются ресурсами, участвующими в создании страницы, которые я могу полностью отстать, но я не вижу веских аргументов в пользу кеширования страницы оптом.

Уважайте заголовки.

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