私は現在、大規模なデータセットを持つ .NET (3.5) ページに取り組んでおり、パフォーマンスは、2 つの異なる場所 (12 時間離れた場所) に座っているユーザーにとって主な懸念事項です。
目標と要件:
- 約 2500 レコード x 30 列の結果セットがあります。
- クライアント側の並べ替えと多数のセルの書式設定を備えた表形式のビューとして表示します。
- 12 時間離れた 2 つの異なる場所 (1 つは Web ブラウザーの隣にあり、もう 1 つは Web サーバーから地球の反対側にあります) でのロード時間はかなり高速です。
私は 2 つの異なるアプローチを試みましたが、両方のユーザーを満足させることができませんでした。これが私がこれまでに試したことです:
- クライアント側グリッド
- 長所:
- ネットワーク経由で送信される小さなデータ パケット。Web サーバーが 1 MB 未満を送信しています。ネットワーク経由で高速化
- 短所:
- グリッドを生成する Javascript/JQuery プロセスには、10 ~ 15 秒かかります (さまざまです)。
概要: クライアント サイド グリッドは、Web サーバーから離れた場所にいるユーザーにとって有益です。ただし、サーバーの隣に座っているユーザーにとってはそれほどではありません。サーバーの隣に座っているユーザーは、JQuery/Javascript がテーブルを構築するのを待つ必要があります。
- サーバー側グリッド
- 長所:
- Web サーバー (サーバー側) ですべてのマークアップが完了するとは限りませんが、レンダリングが高速化されます。
- 短所:
- ネットワーク経由で送信される大きなデータ パケット。Web サーバーは 3.5 - 5 MB を送信しています。ネットワーク経由ではるかに遅くなります。(3.7 MB のページを取得するのに約 30 秒以上かかります)
概要: サーバー サイド グリッドは、Web サーバーの隣に座っているユーザーにとって有益です(ロードはほぼ瞬時に行われます - 3 MB でわずか 1 秒)。同様に、地球の反対側に座っているユーザーは、ネットワーク転送に悩まされています.3MBのページで30秒以上かかります。
グーグルと実験の後; これらのユーザーの両方を満足させる方法について、私はまだ頭を悩ませています。
*注: ソース コードを含めないことにしました。
万能のソリューションがないことはわかっていますが、これらのユーザーの両方を満足させるために、少なくとも中間点に達するものを探しています.
一般的に、少なくとも、ページが「読み込まれた」(高速) という印象をユーザーに与えたいと思います。すべてのデータが到着する前にレンダリングを開始します。ただし、まだデータをロードしている可能性があります。つまり、おそらく無限スクロールです。
クリエイティブなアイデアを探しています。したがって、提案にサーバーを地球の半分に移動することが含まれている場合。帯域幅またはその他のとてつもないアイデアを増やします。アイデアを内緒にしていただければ幸いです。
ありがとう。
D