0

これはかなり些細な質問であることは知っていますが、とにかく解決可能かどうか知りたいです。

ネストされたマスターページと 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 などに投稿するためだと思いますか?)
- ビューステートを減らして、このコントロールを適切に機能させるにはどうすればよいですか?

4

1 に答える 1

0

ビュー ステートを削減し、この 1 つのコントロールを適切に動作させるには、ページでビュー ステートを有効のままにし、そのページのViewStateModeを Disabled に設定してから、ビュー ステートを必要とする 1 つのコントロールの ViewStateMode を Enabled に設定します。他のすべてのコントロールでは、デフォルトで親の設定を継承する必要があります。

于 2012-07-07T05:50:04.983 に答える