Что такое VaryByParam в asp.net?
Пока я работаю над кешем, есть что-то вроде
VaryByParam
в директиве страницы. Так что же это? Может ли кто-нибудь объяснить это мне?
Ответы
Ответ 1
От @OutputCache (MSDN):
Список строк, разделенных точкой с запятой, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET, или параметру, отправленному с использованием метода POST. Если для этого атрибута установлено несколько параметров, выходной кеш содержит другую версию запрашиваемого документа для каждого указанного параметра. Возможные значения: none, * и любая допустимая строка запроса или имя параметра POST.
Используя это, если вы вызываете свою страницу с использованием того же значения переменной, эта страница будет извлечена из вашего кеша и не будет выполнена до тех пор, пока не будет достигнуто время, указанное в аргументе Duration
.
Ответ 2
Чтобы процитировать документацию MSDN:
Список строк, разделенных точкой с запятой, используемых для изменения выходного кэша. По умолчанию эти строки соответствуют значению строки запроса, отправленному с атрибутами метода GET, или параметру, отправленному с использованием метода POST. Если для этого атрибута установлено несколько параметров, выходной кеш содержит другую версию запрашиваемого документа для каждой комбинации указанных параметров. Возможные значения: none, звездочка (*) и любая допустимая строка запроса или имя параметра POST.
Итак, если вы установите его на "A;B"
, то эти URL-адреса будут кэшироваться отдельно:
http://example.com/yourpage.aspx?A=1&B=4
http://example.com/yourpage.aspx?A=1&B=3
http://example.com/yourpage.aspx?A=2&B=3
но эти URL-адреса будут иметь доступ к одной и той же записи кэша:
http://example.com/yourpage.aspx?A=1&C=4
http://example.com/yourpage.aspx?A=1&C=3