約2000行のデータビューがあります。ページの読み込み時に、データビューをオブジェクトデータグリッドにバインドします。
dataGrid.DataSource = dv;
dataGrid.DataBind();
ただし、時間応答は非常に高くなります(数分)。それを速くするために私は何ができますか?または、少なくともクライアントをフリーズできませんか?
最初にクエリを確認してください。取得できる限り高速になったら(一時テーブルなどで毎晩データを事前にキャッシュすることを含む)、ASP.NETコードに移動して高速化します。
可能であれば、グリッドのビューステートをオフにします。ビューステートにより、ページサイズが大幅に増加します。問題の一部は、生のHTMLとビューステートのMBを提供し、それをレンダリングすることです。
私が取るステップ:
2k以上のレコードを1ページで機能させることはできますが、そのためには非常にタイトにする必要があります。
最後の手段として、グリッドを取り除き、リテラルコントロールを使用して、生のクリーンでタイトなhtmlを直接グリッドに出力します。この場合も、リテラルコントロールのビューステートをオフにしてください。
dBからデータを返すのにかかる時間を確認してください。長すぎない場合、問題はおそらく2000行をレンダリングしようとしているページにあります。
もしそうなら、ページングは物事をスピードアップします。
ある種のデフォルトのフィルターを使用して、クエリに戻すアイテムの数を減らします。画面上のその量のデータは、通常、とにかくユーザーエクスペリエンスを低下させ、デフォルトのフィルターはページのレンダリングを高速化します。ユーザーが2000行のデータを要求した場合は、データを取得させます...ただし、ページングは、クエリを実行して現在の「ページ」にないレコードを破棄するため、データグリッドを使用したページングは避けます。すべての2000レコードをバックアップします。したがって、ページングを20アイテムに設定した場合でも、クエリはすべての2000レコードを返し、ユーザーが新しいページを要求するたびに、グリッドは他の1980レコードを削除します...