2012-02-16 13 views
2

我正在開發一個使用jsp,servlet和java的基於SAS的系統。我很困惑在使用客戶端分頁(一次性獲得所有結果)或使用服務器端(每次點擊)。基於SAS的軟件分頁

如果我使用客戶端分頁多少數據是o.k.什麼是實現分頁像JavaScript,AJAX,jQuery等最好的方法是什麼

回答

2

我認爲基於js/jquery的分頁與Ajax數據獲取是偉大的。你需要考慮是否需要排序。我在7個月前實現了基於jQuery的分頁,那時由於數據太多,分頁幾乎變得非常慢(每頁1000行10行)。所以,請確保您實現基於Ajax的分頁。

我用這個:http://tablesorter.com/docs/

這:http://tablesorter.com/docs/example-ajax.html

此外,antoher有用的鏈接:
http://www.xarg.org/2011/09/jquery-pagination-revised/

附: - 對於分頁實現的語法和類非常小心。一個拼寫錯誤,你可能會進入圈子。

其他信息:如果您想使用其他語言,請嘗試使用Ruby on Rails。您可以使用will_paginate或Kaminari gem來簡化分頁的實現。

1

我當然會看看服務器端分頁和客戶端分頁的組合。 如果您要做的只是每次顯示10行,那麼返回1000(或10000+)行數據是沒有意義的。

如果你打算在網格中顯示數據,那麼我建議你看看Datatables.net。他們有一些很棒的examples,其中包括paginationpipelining your data from the server(即返回的記錄數比實際顯示的要多,因此您的調用次數更少以檢索更多數據)。

2

這實際上取決於您的數據量和用戶在他的會話中加載該頁面的概率。 如果數據集被限制爲說最多100 *行左右,並且每條記錄有少量數據大小的列,則可以進行客戶端分頁。但是,如果數據集的最大值未知或將逐漸增加,那麼最好去服務器端分頁。 使用jQuery的Ajax絕對是最好的選擇。每個網格的jQuery插件都有自己的分頁機制,但基本的邏輯是相似的:

  1. 你需要設計你的後端的API,使得他們接受 maxResultscurrentPage作爲參數,可以與其他PARAMS一起。
  2. 與您的DB交互的API取最大值maxResults no。從(currentPage -1) * pageSize

行,第一行開始我一直在使用jQgrid,發現它非常有據可查,並很容易實現。 有用的帖子: https://stackoverflow.com/questions/159025/jquery-grid-recommendations

注:* 100僅僅是一個例子不要隨便好好的談一次吧:)