個人所知的web分頁的三種方式,閒來無事總結一下。
1、使用前端表格插件進行分頁
例如用bootstrap的拓展table組件,注意設置其分頁屬性時設置爲“client”,
即是 sidePagination:"client", //客戶端分頁,如果改成server就是服務端分頁。
對應的table組件會直接解析你的提供的數據進行分頁操作。
優點:實現簡單,直接設置前端table組件的參數即可。
缺點:從其實現原理上即可看出,這個數據是用戶請求一次,服務器會將該表的所有數據返回到前端,刷新界面和點擊下一頁的操作的時候都會重複以上操作。顯示數據的速度會因爲網絡帶寬、服務器壓力等而變慢。
2、後端用代碼實現分頁
寫一個分頁的方法,如:
public <T> List<T> pageSet(List<T> list,String limit,String offset){
List<T> list2=new ArrayList();
int limit2=Integer.parseInt(limit); //頁面大小
int offset2=Integer.parseInt(offset); //第幾頁
for(int i=limit2*(offset2-1),j=0;i<list.size()&&j<limit2;i++,j++)
{
list2.add((T) list.get(i));
}
return list2;
}
就是根據當前第幾頁,每頁顯示幾條數據進行分頁數據的處理。
優點:一次請求只會向前端返回一頁的數據,瀏覽器需要接收的數據變少了,頁面展示會變快
缺點:本質還是一次請求從服務器獲取該表的所有數據,後端代碼處理之後只取了其中一部分。
3、數據庫用sql語句實現
以MySQL爲例, select * from sys_order limit 0,10 //從第0條開始查,一共查詢10條記錄
優點:真正實現了從數據庫就是分頁處理
缺點:不知道會不會在數據量大的時候數據庫獲取數據會變慢,由於沒有測試過數據量較大的時候會有較大的速度區別,所以這裏不是很清楚。
總結:其實實現方式都是根據需求來的,如果你只是做一個簡單展示,數據量少,推薦第一種方式,實現簡單。
我個人還是推薦第二和第三種方式,實現其實也很簡單,就是多加兩個參數就可以了。
PS:當然如果你使用了orm框架如Hibernate和Mybatis,這些框架都有對應的分頁查詢的拓展jar包,還是提供兩個參數,當前頁和當前頁數據顯示條數,就可以實現分頁查詢。具體可以去百度一下。
-----------------------------------------------------------------------------
歡迎轉載,聲明原處即可