Почему атрибут OutputCache требует установки параметра VaryByParam? - PullRequest
1 голос
/ 30 июля 2010

Я провел нулевое исследование по этому вопросу, мне просто любопытно.

Класс OutputCacheAttribute в ASP.NET MVC требует значения для Duration и VaryByParam.Я понимаю, почему требуется Duration, но не VaryByParam.

Ответы [ 2 ]

1 голос
/ 30 июля 2010

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

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

Они пытаются ввести вас в «яму успеха», заставляя вас осознать, что страница может отображаться по-разному, когда присутствуют определенные параметры строки запроса / POST, и заставляя вас задуматься о том, что означает выходное кэширование. и как это работает.

0 голосов
/ 22 июля 2011

Обновление: Хорошо, начиная с последней версии MVC (3), она больше не требуется, и по умолчанию никакие параметры не используются, то есть, только когда существует кэш. Это поведение, которое я ожидал ранее.

...