特集:クライアントステート管理、3つの手法:Visual Studio Magazine(7/9 ページ)
ASP.NET上でクライアント状態管理に用いる「セッション状態」「ビューステート」「クッキー」。この特集では、3つそれぞれにおける実践的なテクニックを解説する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ViewStateの欠点
ViewStateには欠点がある。それは、生成されるページの合計サイズが大きくなってしまうという点だ。ページの合計サイズは、ページ単位で生成されたユーザーインタフェースに影響するのではなく、ページ内でどれだけビューステートが使われるかに依存し、HTML容量が劇的に増加していく。筆者は、ページやコントロールがViewStateを必要としないならば、ビューステートを無効にすることを推奨する。
なお、ビューステートを無効にするには、ページで「<%@ Page EnableViewState="false" %>」を使うか、コントロールにおいて、「Page.EnableViewState="false"」とサーバコントロールで指定すればよい。
次の実例は、BookData.xmlというXMLドキュメントを読み込んだDataSetをDataGridサーバーコントロールにデータバインディングすると、それがBase64化され、XMLの属性値になってしまうというものだ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページをリクエストした時のHTMLソースを見ると、__VIEWSTATEの値は次のようになる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この例ではビューステートの機能を利用していないため、DataGridコントロールのEnableViewState属性を無効にすべきだ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
すると、ページがリクエストされたとき、__VIEWSTATEに含まれる値は、次のようにほどよい大きさになる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ビューステートは、ポストバックを用いるページの状態を管理する強力なテクニックだ。しかしビューステートは、ページ出力のサイズを容易に増加させてしまう代償もあるという点を忘れないでほしい。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
© Copyright 2001-2005 Fawcette Technical Publications