これはかなり些細な質問であることは知っていますが、とにかく解決可能かどうか知りたいです。
ネストされたマスターページと JavaScript が含まれる ASP.NET Web フォーム ページがあります。私は jQuery と Ajax 呼び出しを多用しています。ページが読み込まれると、サーバーとのすべての通信は Ajax 呼び出しで行われるため、ViewState を有効にする必要はありません。これにより、HTML 出力コードが削減されます。
ユーザーがファイルをアップロードできるページを実装する必要があります。そこで、AjaxToolkitFileUpload の AsyncFileUpload コントロールを使用しました。ファイルがアップロードされたら、サーバーに対して Ajax 呼び出しを実行してファイル名を要求します。
すべて正常に動作しますが、FireBug が OnClientUploadStarted イベントと OnClientUploadComplete イベントの間でファイルのアップロードごとに 10 個のエラーを検出したことに気付きました。ファイルは適切にアップロードされ、クライアント側のイベントも機能しています。しかし、スローされたエラーがあるという事実を無視できないので、問題を探しに行きました。
ページを 1 つずつ再構築したところ、このコントロールには Viewstate を有効にする必要があることがわかりました。ただし、ページ ディレクティブでviewstate=disabledを指定するとファイル サイズは 76.6kb になり、viewstate=enabledを指定するとサイズは 99.2kb になります。
繰り返しますが、これは取るに足らないことであり、サイトのパフォーマンスに影響を与えないことはわかっていますが、知っておくと便利です。
- このコントロールにビューステートが必要なのはなぜですか? (実際にファイルを iFrame などに投稿するためだと思いますか?)
- ビューステートを減らして、このコントロールを適切に機能させるにはどうすればよいですか?