0

フォームの読み込みに問題があります。IE8 での読み込みには約 15 秒かかります。最初の 50 個のコントロールを表示し、バックグラウンドで別のコントロールをロードして、ユーザーが最初の 50 個のコントロールにアクセスできるようにする方法はありますか?

ありがとう、スラジュ

4

2 に答える 2

1

ページの一部を送信するには、ページ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...
于 2013-01-21T10:27:29.457 に答える
0

それは多数のコントロールです。

ここでの主な問題はViewState. ページサイズを見てください。数MBになります。Web に適したデザインではありません。

実行できる手順:

  1. ページを再設計して、使用するコントロールを減らします。セッションを使用して値を維持し、入力フォームをいくつかの小さなフォームに分割できます。

  2. ViewStateをセッションに移動できます。これにより、ある程度の安心感が得られます。これには を使用しSessionPageStatePersisterます。

  3. 非表示のコントロールを に設定しVisible="False"ます。CSS または JavaScript によって非表示になっているコントロールは、依然として帯域幅を占有してレンダリングされます。コントロールを に設定するVisible="False"と、サーバーはそれらをレンダリングしないように指示されます。これの欠点は、それらを表示する必要がある場合、サーバーにポストバックする必要があることです。

  4. ページのライフサイクルで変更されないコントロールについては、ViewStateMode="Disabled". これにより、コンテンツが ViewState に書き込まれないことが保証されます。

于 2013-01-21T10:42:12.243 に答える