- PR -

【ASP.NET】SPREADを使用した場合のレスポンス問題

1
投稿者投稿内容
新人S
ベテラン
会議室デビュー日: 2005/10/12
投稿数: 74
投稿日時: 2006-05-02 20:07
お世話になってますm(_ _)m

今日はスレ違いかもしれないのですが、皆様の意見をうかがいたいと
思い、書き込みをしました。
(開発言語:VB.NET、.NETフレームワーク1.1)

上記の環境で開発をおこなっています。
さらにGrapeCityのSPREAD for .NET2.0JWeb FormEdition
を使用しています。

当初、SPREADを使用する際にViewStateにデータを丸ごと入れていました。
しかし、SPREADのViewStateのデータ量が膨大だったため、ViewStateを使わないように
修正しました。
処理時間はかなり短縮されましたが、まだレスポンスが良いとは言えません。
サーバー側のイベント処理に時間がかかっているというよりも、
サーバーがクライアントにデータを送るための準備やクライアント側の表示に時間がかかっているようです。
ViewStateは使わないようにしているので、あと削れるのはHTMLのデータだけです。

そこで、SPREADのコントロール自体が重いのでは?とういうことで、他に同様の使い方ができるコントロールはないか?もしくは、SPREADを使用したままでもHTMLデータを軽くする方法はないかと思い、ここに書き込みをさせていただきましたm(_ _)m
ちなみに、今SPREADを使用してやっていることは、
・単純なデータ表示
・ボタンの使用 
 (「選択」ボタンのようなものを用意し、クリックイベントをとりサーバー側で処理)
・スクロールバーの使用
・ラジオボタンの使用
・セル単位での背景色の変更
・セルに対してのイメージの貼り付け
です。

些細なことでもよいですので何かご存知の方がいらっしゃいましたら
宜しくお願い致しますm(_ _)m

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-02 20:10
引用:

新人Sさんの書き込み (2006-05-02 20:07) より:

ViewStateは使わないようにしているので、あと削れるのはHTMLのデータだけです。

そこで、SPREADのコントロール自体が重いのでは?
とういうことで、他に同様の使い方ができるコントロールはないか?


Repeator を使うくらいしか思い浮かびませんが、データ量がそもそも多いんじゃないですか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
新人S
ベテラン
会議室デビュー日: 2005/10/12
投稿数: 74
投稿日時: 2006-05-02 20:33
じゃんぬねっとさん、いつもありがとうございますm(_ _)m

>データ量がそもそも多いんじゃないですか?

確かに、多いです。。
現在35列60行程度のデータが表示されています。
ちなみに、全部のセルにデータが表示されているわけではありません。
セルのタイプもテキスト・ボタン・イメージ、と共通のセルタイプでもありません。

やはり、データが多いのでしょうか。。
なんとか速くするように、と言われていますが
データ量が問題となると、画面の仕様自体を見直してもらわないと、と思っています。
(画面の仕様を簡単に変えてくれともいえないので、今いろいろと調べてたわけです^^;)

>Repeator を使うくらいしか思い浮かびませんが

Reporterというのはツールの名前でしょうか?
勉強不足ですみません(>_<)
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-02 20:43
引用:

新人Sさんの書き込み (2006-05-02 20:33) より:

やはり、データが多いのでしょうか。
なんとか速くするように、と言われていますが
データ量が問題となると、画面の仕様自体を見直してもらわないと、と思っています。


ページングで補うべきじゃないでしょうか。

引用:

>Repeator を使うくらいしか思い浮かびませんが

Reporterというのはツールの名前でしょうか?


つづりをお互い間違えてますね。(^^)
正しくは Repeater です。

HTML レベルで言えば TABLE 要素による表組みになるだけですが、どうでしょうね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-05-03 04:23
NAL-6295です。

苦肉の策ですが。
aspxファイル中のインデントを全部削除すると、その分軽くなります。
DataGrid等、デザインのインデントのまま出力しているので、データ量が多い時など、
インデントを削除する前と後でレンダリング後のHTMLファイルのサイズが3分の2になった事もありました。

まぁ、一番良いのは、じゃんぬねっとさんも仰っているとおりページングでしょうね。

でも、レスポンスに時間がかかっているのか処理で時間がかかっているのか計測した方が良いでしょうね。


[ メッセージ編集済み 編集者: NAL-6295 編集日時 2006-05-03 04:27 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-04 07:47
ViewState も、切れるところは切っておけばいいでしょう。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-05-04 10:22
引用:

サーバー側のイベント処理に時間がかかっているというよりも、
サーバーがクライアントにデータを送るための準備やクライアント側の表示に時間がかかっているようです。


まずは、ボトルネックが何処なのかを調査するべきでしょう。
トレース表示とか。
InetSpy/横取り丸とか。

引用:

そこで、SPREADのコントロール自体が重いのでは?とういうことで、他に同様の使い方ができるコントロールはないか?



DataGridですね。
というより、DataGridで機能が足りないからSPREADを使うものでは?
Spread以外にも市販のGridコントロールがあります。
新人S
ベテラン
会議室デビュー日: 2005/10/12
投稿数: 74
投稿日時: 2006-05-08 14:51
じゃんぬねっとさん、NAL-6295さん、Jittaさん、todoさん
お返事ありがとうございますm(_ _)m

まず、ページングについてですが、SPREADのページング機能は行数を設定して、その行数を超えると改ページするというものですよね。(あってるかな)
しかし、今回の表の場合、仕様上どうしても行数を削ることはできないのです。。
単純にデータを上から表示、とういものだったらよかったんですが。。

次にaspxファイルのインデントを全て消す、というのもやってみましたが、HTMLファイルのサイズに変化は見られませんでした。。
やり方がまずかったのでしょうか(;_;)

実際、ここに行き着くまでに、トレース表示をして、どこに時間がかかっているかというのを調べました。
見ると、Prerenderという処理に時間がかかっているようでした。
そして、クライアント側に帰ってきて表示するのにまた時間がかかり。。という状況です。

引用:
--------------------------------------------------------------------------------


DataGridですね。
というより、DataGridで機能が足りないからSPREADを使うものでは?
Spread以外にも市販のGridコントロールがあります。

--------------------------------------------------------------------------------

DataGridですか。
私が開発に入ったときにはすでにSPREADを使用することになっていたので、DataGridとSPREADの機能の違いを調査したわけではないのですが、DataGridでできることならばDataGridで実現させた方が当然、データは少なくて済むわけですよね。。
DataGridで代用可能か、どのぐらいの修正が必要か、を調べて行きたいと思います。






1

スキルアップ/キャリアアップ(JOB@IT)