鍍金池/ 問答/網(wǎng)絡安全/ 分頁,前端是如何與后端交互的?

分頁,前端是如何與后端交互的?

我是一名小白前端。

關于分頁我的理解是這樣的:

1.首先后端會把分頁邏輯做好(一頁顯示多少數(shù)據(jù),總共多少頁)

2.前端get請求獲取第一頁的數(shù)據(jù) (因為網(wǎng)站打開時默認顯示第一頁嘛)

3.用戶點擊第2頁的時候,我發(fā)送post請求給后端(把2發(fā)給后端)

4.后端把第2頁的數(shù)據(jù)返回給我,我在渲染出來

不知道我這樣的理解對不對

回答
編輯回答
你好胸

你可以去參考一下https://github.com/watchdog-framework/watchdog-framework的前端項目設計,大概是這樣的一個思路:

后端返回給前端的響應:

{
    "status": 1,
    "data": {
        "total": 114, 
        "size": 10,
        "pages": 12,
        "current": 1,
        "records": [{
            "id": "990145393943736321",
            "username": "test",
            "uid": "989416849999503361",
            "ip": "222.209.86.19",
            "ajax": 1,
            "uri": "/account/sign-in",
            "params": "[{\"password\":\"******\",\"username\":\"test\"}]",
            "httpMethod": "POST",
            "classMethod": "cn.licoy.wdog.core.controller.AccountController.signIn()",
            "actionName": "登錄",
            "createDate": 1524904033000
        }]
    },
    "msg": "操作成功",
    "timestamps": 1524904039383
}

其中

  • data.total代表總記錄數(shù)
  • data.size代表每頁顯示數(shù)量
  • data.current代表當前頁
  • data.pages代表總頁數(shù)

其總頁數(shù)運算公式為 Math.ceil(data.total/data.size)。

2018年6月6日 00:57
編輯回答
放開她

前端把頁碼,每頁顯示條數(shù)發(fā)送到后端,后端根據(jù)這兩個字段分頁后返回相應的頁碼的數(shù)據(jù)。如下請求第一頁,100條數(shù)據(jù),點擊第二頁時把pageNumber改成2再發(fā)送到后端就行了。

{
    pageSize:100,
    pageNumber:1
}

當然后端會返回總條數(shù),前端根據(jù)總條數(shù)跟pageSize可以計算出總共有多少頁。后端也可以返回總共有多少頁,前端就不用計算了。

2018年5月10日 21:52
編輯回答
陌上花

是的,前端做的就是把頁碼,每頁展示條數(shù)傳給后端就可以了,其他后臺處理

2018年2月5日 06:20