none
DataGridへの多量データの表示 RRS feed

  • 質問

  • バージョン:ASP.NET2003
    開発言語:VB.NET

    多量のデータ(1000件~2000件)をDataGridに表示しています。
    表示したデータを編集したりする処理がありますが、レスポンスが
    非常に悪くなり業務に耐えません。
    (回線速度も関係あると思いますが、それにしても...って感じです)
    DataGridは、<DIV>タグを使用し、縦スクロールするようにしています。
    ページングさせれば多少はよくなると思いますが、やはりユーザーの
    要望は縦スクロールなので、そうしています。
    そもそも、Webアプリ上に多数のデータをDataGridなどで表示するのが
    間違いなのでしょうか?
    そうではなく、表示するとき何か工夫することがあるのでしょうか?
    ご存知の方いましたら、よろしくお願いします。

     

     

    2007年3月5日 7:32

回答

  • > そもそも、Webアプリ上に多数のデータをDataGridなどで表示するのが
    > 間違いなのでしょうか?

    たぶん間違いです。
    生成されたHTMLを表示して、どの程度のデータ量になっているか確認してみるところから始めるのがよいかと。

     

    2007年3月5日 10:04
  •  サファイア さんからの引用
    多量のデータ(1000件~2000件)をDataGridに表示しています。

    それは遅いでしょうねぇ。

    まずは、 どの段階でどのくらいの時間が掛かっているか、 計測してみてください。
    1. ASP.NET 側の処理時間
    2. Web サーバからクライアントへの通信時間
        ( 近似的には、 ASP.NET からの出力を HTML ファイルに落として、
          それを Web サーバに置いてアクセスしてみるといいでしょう。
          これには、 3. の時間も含まれていますので、目視で分けてやってください。 )
    3. クライアント側の処理時間 (≒描画時間)
        ( 近似的には、 ブラウザ側で描画が始まってから、
          テーブルがスクロールできるようになるまで。)
    4. クライアントから Web サーバへの送信時間
        ( 近似的には、 ASP.NET からの出力中に占める ViewState の大きさ。
          2. の時間にその比率を掛けてやります。)

    たぶん、 2. の時間を測ってみたところで、 一回に送るデータ件数を減らすべきだという結論に到達すると思います。

    3. の中で、 テーブル描画時間は、 CSS の設定 ( table-layout プロパティに fixed を指定するやり方) で短縮できることがあります。

    4. については、 テーブル内を自由に編集させることをあきらめれば、 削減できる可能性があります。

    2007年3月5日 10:21

すべての返信

  • > そもそも、Webアプリ上に多数のデータをDataGridなどで表示するのが
    > 間違いなのでしょうか?

    たぶん間違いです。
    生成されたHTMLを表示して、どの程度のデータ量になっているか確認してみるところから始めるのがよいかと。

     

    2007年3月5日 10:04
  •  サファイア さんからの引用
    多量のデータ(1000件~2000件)をDataGridに表示しています。

    それは遅いでしょうねぇ。

    まずは、 どの段階でどのくらいの時間が掛かっているか、 計測してみてください。
    1. ASP.NET 側の処理時間
    2. Web サーバからクライアントへの通信時間
        ( 近似的には、 ASP.NET からの出力を HTML ファイルに落として、
          それを Web サーバに置いてアクセスしてみるといいでしょう。
          これには、 3. の時間も含まれていますので、目視で分けてやってください。 )
    3. クライアント側の処理時間 (≒描画時間)
        ( 近似的には、 ブラウザ側で描画が始まってから、
          テーブルがスクロールできるようになるまで。)
    4. クライアントから Web サーバへの送信時間
        ( 近似的には、 ASP.NET からの出力中に占める ViewState の大きさ。
          2. の時間にその比率を掛けてやります。)

    たぶん、 2. の時間を測ってみたところで、 一回に送るデータ件数を減らすべきだという結論に到達すると思います。

    3. の中で、 テーブル描画時間は、 CSS の設定 ( table-layout プロパティに fixed を指定するやり方) で短縮できることがあります。

    4. については、 テーブル内を自由に編集させることをあきらめれば、 削減できる可能性があります。

    2007年3月5日 10:21
  • どっとねっとふぁんさん、biacさん 回答ありがとうございます。

    やっぱりそうですよね...
    当然ですが、Windowsアプリと同じような画面設計で作成していてはダメってことですよね。

    処理速度の確認方法など参考になりました。

    2007年3月7日 8:54