サーバーからデータを取得し、クライアントでGWTを使用してデータを表示したいと思います。
ここではGWTは問題ではありません。GWTをAjax呼び出しに置き換えるか、Webアプリではなく実際のアプリケーションに置き換えることができます。
データを受信して表示する前に、JavaScriptを使用してサーバーまたはクライアントで並べ替えを実行する必要がありますか?
サーバーからデータを取得し、クライアントでGWTを使用してデータを表示したいと思います。
ここではGWTは問題ではありません。GWTをAjax呼び出しに置き換えるか、Webアプリではなく実際のアプリケーションに置き換えることができます。
データを受信して表示する前に、JavaScriptを使用してサーバーまたはクライアントで並べ替えを実行する必要がありますか?
それぞれのアプローチには長所と短所があります。
理想的には、ソートはサーバー上で実行する必要があります。理由は次のとおりです。-
クライアントのリソースが少ないと想定するのが最善です。たとえば、デスクトップからGWTアプリを起動する人もいれば、CPU/RAMが少ないiPad/電話からGWTアプリを起動する人もいます。
サーバー側で並べ替えを行う標準的な方法があります。たとえば、SQL ORDER BY句を使用しますが、クライアント側で並べ替えを行うには、独自のルーチン/メソッドを実装する必要がある場合があります。
場合によります... :)
アーキテクチャ的に言えば、この質問に答えるには、システムで必要なプロパティを決定し、さまざまな設計の選択肢間のトレードオフを評価する必要があります。システムについて詳しく知らなければ、これ以上のアドバイスを提供することは困難です。
クライアントよりもサーバーでソートする方が常に高速であるという包括的なステートメントに注意する必要があります。姓と名の連結でソートされた数千のレコードを返す場合がありました。これらのフィールドのいずれにもインデックスが付けられておらず、私はこれを制御できませんでした。ご存知のように、連結された文字列の並べ替えは、データベースが本質的にうまく機能するものではありません。数字やインデックス付きフィールドに見えます。この場合のクライアントでの並べ替えは、最終的に高速になりました。データベースを制御できる場合は、Oracleのこれら2つのフィールドに関数インデックスを配置します。
ストーリーの教訓は、何も想定せず、アプリケーションのプロファイルを作成して、シナリオに最適なものを見つけることです。