1. 程式人生 > >web分頁實現的三種方式

web分頁實現的三種方式

個人所知的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包,還是提供兩個引數,當前頁和當前頁資料顯示條數,就可以實現分頁查詢。具體可以去百度一下。

-----------------------------------------------------------------------------

歡迎轉載,宣告原處即可

相關推薦

方式

實現方式 優點 缺點 適用場景 subList 簡單、易用 效率低 無法按需批量獲取資料 SQL語句 簡單、直接、效率高 資料庫相容性差 不要求資料庫相容 Hibernate框架 面向物件,相容性強 複雜查詢效能低 相容不同資料庫 一.藉助

web實現方式

個人所知的web分頁的三種方式,閒來無事總結一下。1、使用前端表格外掛進行分頁例如用bootstrap的拓展table元件,注意設定其分頁屬性時設定為“client”,即是 sidePagination:"client", //客戶端分頁,如果改成server就是服務端分頁。

RecycleView 實現複雜首佈局方式

做過電商類應用的朋友可能都會遇到一個比較頭疼的問題:複雜的首頁佈局如何實現。參考百度糯米,美團,bilibili等應用,都會發現其首頁的佈局相對複雜,例如下圖bilibili的首頁(第二張是demo實現的效果圖),可以看到在同一個頁面中先是有列表佈局出現,然後出現了2列的網格

django的兩方式

data number 數據返回 django 當前 star instance previous ref 第一種自定義分頁: def pageDemo(request): ‘‘‘ 自定義分頁] :param request: :return:

搭建FTP服務,實現方式的訪問:1.匿名訪問;2,本地用戶訪問;3虛擬用戶訪問。

行程 工作環境 能夠 ftp用戶 a10 linu 進入 編輯 binary FTP服務(File Transfer Protocol,文件傳輸協議)是典型的C/S結構 的應用層協議,需要由服務端軟件,客戶端軟件兩部分共同實 現文件

SQLserver的四方式

第一種:ROW_NUMBER() OVER()方式 select * from (     select *, ROW_NUMBER() OVER(Order by ArtistId ) AS RowId from ArtistModels   ) as b where RowI

SQL SERVER 的幾方式

背景: 在日常工作中,經常需要解決分頁的問題,這也是真分頁必須要做的一件事情。經常查詢,發現有很多的分頁方法,為了瞭解他們的分頁效率我做了一個實驗。當然,跟自己的伺服器效能也是有一定關係的。 準備: 1

Oracle資料庫方法

-- 不能對ROWNUM使用>(大於1的數值)、>=(大於或等於1的數值)、=(大於或等於1的數值),否則無結果-- 所以直接用只能從1開始-- rownum >10 沒有記錄,因為第一條不滿足去掉的話,第二條的rownum又成了1,所以永遠沒有滿足條件的記

Java WEB 實現

分頁實現的效果:    &組圖0-1.分頁實現效果圖一      &組圖0-2.分頁實現效果圖二一、從效果可以看出內容由兩部分組成:1.學生資訊    資料庫中插入一些記錄,此處以學生

Hibernate 的兩方式

第一種:hql分頁(不推薦)需要手動關閉session連線 //PageBean.java @SuppressWarnings("hiding") public class PageBean<

mybatis實現(非外掛方式)

前面一篇文章介紹了通過攔截器發方式實現mybatis分頁(應該是比較常用的一種方式,網上搜索結果較多),這裡介紹另一種方式:通過程式碼封裝,不改變mybatis框架的任何東西(個人推薦使用該方式),這個程式碼是我老大寫的,個人覺得很好,原理也很簡單,修改也很容易,所以貼出來

的幾方式(邏輯和物理

/** *//** * TestPageResultSetDAO.java * * Copyright 2008. All Rights Reserved. */package com.cosmow.pageresultset.dao;import java.sql.Connection;import jav

的第二方式

優點: 1.程式碼十分簡潔 缺點: 1.不能及時響應資料庫中變化 2.重複查詢較多,每獲取一個屬性(總頁數),都要查詢資料庫 將某一頁的資料直接封裝在此類中,調一個方法便可獲取資料。 public class fengye { // 查詢所有使用者 public Lis

java的兩方式

  方式其實都非常的簡單,一種是資料庫分頁用limit限制取出條數,一種是在業務邏輯裡面分頁,我用的是jdbc,所以每次遊標指定到一定的條數進行展示。   1資料庫分頁(關鍵字limit) 因為只是簡單的進行原理學習,所以並沒有對程式碼方面對嚴格的書寫,明白原理就好。 主

jqGrid 滾動載入 或者點選載入兩方式

public static < T > void sortByBeanFiled(List < T > list, String field, String order) {     logger.debug("sort list...");     Integer d = order

從官方文件中探索MySQL的幾方式優化

### 概覽 相比於Oracle,SQL Server 等資料庫,MySQL分頁的方式簡單得多了,官方自帶了分頁語法 `limit` 語句: ```sql select * from test_t LIMIT {[offset,] row_count | row_count OFFSET offset}

Lucene之查詢的方式-yellowcong

分頁查詢有三種,一種是直接查詢出這頁及這頁以後的資料,第二種,查詢這頁以前的最後一條資料,然後再查詢這頁之後的資料,這種方式還不如第一種方法快,第三種,是根據一個id來進行分頁,這種方式適合不變更的資料 方法1 思路是將所有的查詢取來,然後取自己當前

的第方式

優點: 1.通用性更好,給為頁碼寫一個類,更符合面向物件的思維 2.程式碼十分簡潔 缺點: 1.不能及使獲取資料庫中資料的變化 封裝進Dao物件,通過一個方法返回一個map,map裡有一個頁碼物件,還有一個頁面資料物件 public class FenyeService

IIS web服務實現虛擬主機的方式

1 、使用不同的IP地址。 注: 關鍵是要在高階TCP/IP設定對話方塊裡先配置兩個不同的IP地址,然後應用到不同的網站。(如圖1) 2、使用相同的IP地址、不同的TCP埠。(如圖2) 注:配置不同的埠號即可,訪問時需要在IP後面加上埠號才能正確訪問。 3、使用相同的

Java多線程實現方式

get() warning 三種方式 方式 緩存 運行 了解 ren ava Java多線程實現方式主要有三種:繼承Thread類、實現Runnable接口、使用ExecutorService、Callable、Future實現有返回結果的多線程。其中前兩種方式線程執行完後