私はこの「ViewstateChunking」という言葉を聞き続けています。ビューステートチャンキングとは何ですか?
そして、それはASP.NETページでどのように機能していますか?
私はこの「ViewstateChunking」という言葉を聞き続けています。ビューステートチャンキングとは何ですか?
そして、それはASP.NETページでどのように機能していますか?
ページのViewStateが非常に大きくなると、一部のファイアウォールとプロキシが巨大なViewStateサイズを含むページへのアクセスを妨げるため、問題になる可能性があります。この目的のために、ASP.NETはViewStateチャンキングメカニズムを導入しています。したがって、ASP.NETでは、web.configセクションのMaxPageStateFieldLengthプロパティを使用して、ViewStateの単一の非表示フィールドを複数に分割できます。
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状態管理の新機能から-MSDN
ビューステートデータの量が多すぎる場合、ビューステートチャンクはデータを自動的にチャンクに分割し、データを複数の非表示フォームフィールドに配置します。
なぜビューステートチャンキングが必要なのですか?
これがViewStateOverivewからの抜粋です-MSDN
もう1つの重要な考慮事項は、非表示フィールドのデータ量が多くなると、一部のプロキシとファイアウォールがそれらを含むページへのアクセスを妨げることです。最大量はファイアウォールとプロキシの実装によって異なる可能性があるため、大きな非表示フィールドは散発的な問題を引き起こす可能性があります。この問題を回避するために、ViewStateプロパティに格納されているデータの量がページのMaxPageStateFieldLengthプロパティで指定された値を超える場合、ページはビューステートを複数の非表示フィールドに分割して、個々のフィールドのサイズをファイアウォールが拒否するサイズよりも小さくします。