ViewState Chunking в asp.net

Я продолжаю слышать эти слова "Viewstate Chunking". Что такое Viewstate Chunking?

И как это работает для страниц ASP.NET?

2 ответа

Решение

Когда ViewState на вашей странице становится очень большим, это может стать проблемой, поскольку некоторые брандмауэры и прокси-серверы будут препятствовать доступу к страницам, содержащим огромные размеры ViewState. Для этой цели ASP.NET представляет механизм чанкинга ViewState. Таким образом, ASP.NET позволяет разбить одно скрытое поле ViewState на несколько, используя свойство MaxPageStateFieldLength в разделе web.config.

Когда для свойства MaxPageStateFieldLength задано положительное число, состояние просмотра, отправляемое в браузер клиента, разбивается на несколько скрытых полей.

Если для свойства MaxPageStateFieldLength задано отрицательное число (по умолчанию), это означает, что поле состояния представления не следует разделять на куски. Установка для MaxPageStateFieldLength небольшого значения может привести к снижению производительности.

Образец ViewState перед:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"value="/wEPDwUKLTk2Njk3OTQxNg9kFgICAw9kFgICCQ88KwANAGQYAQUJR3Jp
ZFZpZXcxD2dk4sjERFfnDXV/hMFGAL10HQUnZbk=" />

Затем установите в web.config:

<pages maxPageStateFieldLength="40">

Образец ViewState После:

<input type="hidden" name="__VIEWSTATEFIELDCOUNT" id="__VIEWSTATEFIELDCOUNT"value="3" />
<input type="hidden" name="__VIEWSTATE"
id="__VIEWSTATE" value="/wEPDwUKLTk2Njk3OTQxNg9kFgICAw9kFgICCQ88" />
<input type="hidden" name="__VIEWSTATE1"
id="__VIEWSTATE1" value="KwANAGQYAQUJR3JpZFZpZXcxD2dk4sjERFfnDXV/" />
<input type="hidden" name="__VIEWSTATE2"
id="__VIEWSTATE2" value="hMFGAL10HQUnZbk=" /> 

надеюсь, это поможет вам!

Из того, что нового в ASP.NET State Management - MSDN

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

Зачем нам нужен Viewstate Chunking?

Вот выдержка из ViewState Overivew - MSDN

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

Другие вопросы по тегам