フォームの読み込みに問題があります。IE8 での読み込みには約 15 秒かかります。最初の 50 個のコントロールを表示し、バックグラウンドで別のコントロールをロードして、ユーザーが最初の 50 個のコントロールにアクセスできるようにする方法はありますか?
ありがとう、スラジュ
フォームの読み込みに問題があります。IE8 での読み込みには約 15 秒かかります。最初の 50 個のコントロールを表示し、バックグラウンドで別のコントロールをロードして、ユーザーが最初の 50 個のコントロールにアクセスできるようにする方法はありますか?
ありがとう、スラジュ
ページの一部を送信するには、ページFlush()
内の some whereを使用します。
...html code...
<%Response.Flush();%>
...rest of html code...
ただし、遅延がコード ビハインド (データベースへのクエリなど) にある場合、その時点ではフラッシュは役に立ちません。また、(可能であれば) 計算の一部を次の直後に移動する必要がありますflush()
。
...html code...
<%
Response.Flush();
// Call CodeBehind Function that takes some time
MoreCalculations();
%>
...rest of html code...
それは多数のコントロールです。
ここでの主な問題はViewState
. ページサイズを見てください。数MBになります。Web に適したデザインではありません。
実行できる手順:
ページを再設計して、使用するコントロールを減らします。セッションを使用して値を維持し、入力フォームをいくつかの小さなフォームに分割できます。
ViewState
をセッションに移動できます。これにより、ある程度の安心感が得られます。これには を使用しSessionPageStatePersister
ます。
非表示のコントロールを に設定しVisible="False"
ます。CSS または JavaScript によって非表示になっているコントロールは、依然として帯域幅を占有してレンダリングされます。コントロールを に設定するVisible="False"
と、サーバーはそれらをレンダリングしないように指示されます。これの欠点は、それらを表示する必要がある場合、サーバーにポストバックする必要があることです。
ページのライフサイクルで変更されないコントロールについては、ViewStateMode="Disabled"
. これにより、コンテンツが ViewState に書き込まれないことが保証されます。