3

重複の可能性:
サーバーまたはクライアントでソートしていますか?

私の大学のプロジェクトの一環として、たとえばフォーラムのような Web サイトを作成する必要があります。

そのため、多くの投稿があります。すべての投稿には、いいねバー、コメント、テキスト、ボタンなどがあります。また、ユーザーは、日付、名前、人気などの基準に基づいて、ページに表示されるこれらの投稿を並べ替えることができます。

私の質問は、並べ替えをどのように実装する必要があるかです: 1. ブラウザー側で JavaScript を使用するか、2. フォームまたは何かを使用して、サーバーへの新しい要求を使用します (この方法では、サーバーは並べ替えられた投稿を私に送り返す必要があります)。 ?

前もって感謝します。

4

4 に答える 4

3

どちらにも賛否両論あります。

一般的に言えば、クライアントですべてのデータを使用できる場合は、クライアントでの並べ替えにより応答性の高いユーザー エクスペリエンスを提供できます。

クライアント側でソートするためにフェッチしない余分なレコードをフェッチする必要がある場合、最適なポイントを超えてクライアントへのダウンロードを肥大化させている可能性が高く、Ajax を介したサーバー側でのソートの方が優れています。 .

于 2012-12-11T02:01:54.837 に答える
2

それは大きな依存です。ページングは​​含まれていますか?データセットの最大サイズはいくつですか?クライアント画面の単一ページのレコードのみを並べ替える必要がありますか?

サーバー側の並べ替えは、次の場合に適しています。

  • 大規模なデータセット
  • 最初のページの読み込みが速くなります
  • JavaScriptを実行していない人のためのアクセシビリティ
  • 複雑なビューのビジネスロジック
  • 同時変更に対する回復力

クライアント側の並べ替えは、次の場合に適しています。

  • 小さなデータセット
  • 後続のページの読み込みが速くなります
  • 並べ替え基準は、ユーザーが選択できるか、多数あります。
  • この機能を使用すると、フィルターとページ付けを簡単に追加できます

関連する質問:

サーバーまたはクライアントで並べ替えますか?

関連する回答:

覚えておくべき重要なことは、強力なクライアントとサーバーの間で負荷を分散することは理論的には良い考えかもしれませんが、サーバーだけが挿入ごとに更新されるインデックスを維持できるということです。クライアントが何をするにしても、それはインデックス付けされていないソートされていないデータのセットから始まります。

于 2012-12-11T02:59:28.357 に答える
0

それは私たちに起こりました。クライアント側でデータを並べ替えます。その後、新しい要件が到着しました。ソートされたデータをレポートに入れる必要があります。したがって、並べ替えられたデータをレポートデータソースに直接変換するのではなく(サーバー側の並べ替えによって実現されます)、クライアント側のアクティビティから並べ替えの詳細(並べ替えテーブル、並べ替え列、並べ替え順序)を取得する必要があります(並べ替え列イベントで)次に、レポートの印刷ボタンが押されたときにサーバーに送信し、サーバー側で並べ替えを実行します。たくさんの仕事。

于 2012-12-11T02:59:45.113 に答える
0

クライアント側で要素を並べ替えることが可能/実用的である場合、それが最善の解決策になります (サーバー要求を減らします)。ただし、これは多くの場合そうではありません。

于 2012-12-11T02:01:41.190 に答える