2012-02-16 10 views
2

jsp、servlet、javaを使用してSASベースのシステムを開発しています。そして、私はクライアントサイドページネーション(一度にすべての結果を得る)またはサーバーサイド(クリックごとに)を使用することに混乱しています。SASベースのソフトウェアのページ分割

クライアントサイドページネーションを使用する場合、o.kのデータ量。そして、javascript、ajax、jqueryなどのページネーションを実装する最善の方法は何ですか?

答えて

2

私は、データフェッチのためのAjaxを使用したjs/jqueryベースのページネーションは素晴らしいと考えています。ソートが必要かどうかを検討する必要があります。私はjQueryベースのページネーションを7カ月前に実装しましたが、あまりにも多くのデータがあるため、ページングは​​ほとんど遅くなりました(ページあたり1000行10行)。したがって、Ajaxベースのページネーションを実装するようにしてください。 http://tablesorter.com/docs/

と、この:

は、私はこれを使用しhttp://tablesorter.com/docs/example-ajax.htmlまた

、antoher役立つリンク:
http://www.xarg.org/2011/09/jquery-pagination-revised/

P.S. - ページ区切りの実装のための構文とクラスには非常に注意してください。 1つのスペルミスで、あなたがサークルに入る可能性があります。

追加情報:別の言語を使用する場合は、Ruby on Railsをお試しください。ページネーションの簡単な実装にはwill_paginateまたはKaminari gemを使用できます。

1

私は間違いなく、サーバーサイドページネーションとクライアントサイドページネーションの組み合わせを検討します。 1000(または10000+)行のデータを返すことに意味がありません。実行しようとしているのは、一度に10個しか表示されない場合です。

グリッドにデータを表示する場合は、Datatables.netをご覧ください。彼らはexamplesのようなpaginationpipelining your data from the serverを持っています(つまり、あなたが実際に表示するよりもいくつかのレコードを返すので、より多くのデータを取得する呼び出しが少なくなります)。

2

実際には、データの量とセッション中にユーザーがそのページを読み込む確率によって異なります。 データセットが最大100 *行程度に制限されていて、各レコードのデータサイズが小さい列が少ない場合は、クライアント側のページ付けに行くことができます。しかし、データセットの最大値が不明である場合や徐々に増加する場合は、サーバ側のページ付けに最適です。 jQueryを使ったAjaxは間違いなく道のりです。すべてのjQueryグリッドプラグインはページネーションのための独自のメカニズムを持っていますが、基本的なロジックは似ています。

  1. あなたは、彼らが他のparamsと共に、のparamsとして maxResultscurrentPageを受け入れるようなバックエンドAPIを設計する必要があります。
  2. DBとやりとりするAPIは、最大でmaxResultsをフェッチします。 (currentPage -1) * pageSize

から始まり、行と最初の行の私はjQgridを使用して、それは非常によく文書化され、実装が簡単で発見されています。 参考記事: https://stackoverflow.com/questions/159025/jquery-grid-recommendations

NB:* 100は文字通りそれをtalkeていない単なる一例である:)