2009-04-07 22 views
2

TreeViewの使用中にパフォーマンスを最大限に引き出すにはどうすればよいでしょうか?ASP.NET TreeViewのパフォーマンス

パフォーマンスを最大限に高めることは、クライアントとサーバーの間のトリップ数、つまりポストバックを最小限に抑えることを意味します。

それは、私のビジネスロジックのほとんどがJavascriptに座っているということですか?ここで妥協は何でしょうか?

私はASP.netツリービューのサーバーコントロール

答えて

1

最初に、プログラミングロジックを配置する場所を決めます。スピードを上げるには、クリックイベントを処理するための他のツリービューコントロール(テーブルレイアウトを使用しない)とjavascriptフレームワークを使用することをおすすめします。私はAJAX通信のためのプレーンな古いashxハンドラファイルを使用することをお勧めします、彼らはaspxや呼び出しページメソッドよりもオーバーヘッドが少ないです。 AJAX呼び出しと結果には、HTMLではなく、JSONまたはXML形式のデータのみが含まれている必要があります。

VSのようなRADツールとTreeViewコントロールでは、Webアプリケーションをすばやく作成できますが、いくつかの罰則があります。すべてのクリック/選択イベントを処理するためにサーバーに戻る必要があります。ページライフサイクルの処理と膨大な量のデータ転送(ajaxイベントごとに、HTMLとViewStateがサーバーからクライアントに転送されます)。

しかし、あなたは、ツリービューに固執したい場合は、私はお勧め:
- CSSフレンドリーコントロールアダプタ:彼らは大幅に(私の場合は、100キロバイトからHTMLの20キロバイトに)生成されるHTMLのサイズを小さくし、ULとテーブルレイアウトを置き換えます/ li要素
- ASP.NET AJAX UpdatePanel内でツリービューをラップしますが、ツリービューのみをラップし、パネルの条件付き更新を使用します。いくつかの更新パネルを使用することを恐れてはいけない
- ViewStateを最小限に抑える

+0

は、実際にこの http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx のUpdatePanelによると、私はUpdatePanelの中​​でツリービューを持っているツリービュー – sarsnake

+0

と互換性がありませんが、いくつかのトリックをしなければなりませんでした。もし私がここに投稿して欲しいのであれば教えてください! –

+0

いいえ、MSがUpdatePanelの中​​でそれをサポートしていないと言えば、私はそこで使うつもりはありません。 – sarsnake

0

開発のオーバーヘッドについて話しています - あなたは、JavaScriptと背後にあるコードの両方であなたのビジネスロジックを維持する必要があります。

スクリプトが大きい場合、クライアントのパフォーマンスが低下することも懸念されます。

+0

私は、ビジネスログインとプレゼンテーションレイヤーの分離が不可能であると思いますか? – sarsnake

+0

あなたはビジネスロジックを扱うために別々のjavascriptファイルを持つことができます。独自のPAC階層からなる別のエージェントとしてjavascriptを考えることができます。 代わりに、コードの背後にあるコードからJavaScriptの検証を生成することもできます。 – FlyinFish

関連する問題