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

分頁(yè),前端是如何與后端交互的?

我是一名小白前端。

關(guān)于分頁(yè)我的理解是這樣的:

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

2.前端get請(qǐng)求獲取第一頁(yè)的數(shù)據(jù) (因?yàn)榫W(wǎng)站打開(kāi)時(shí)默認(rèn)顯示第一頁(yè)嘛)

3.用戶(hù)點(diǎn)擊第2頁(yè)的時(shí)候,我發(fā)送post請(qǐng)求給后端(把2發(fā)給后端)

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

不知道我這樣的理解對(duì)不對(duì)

回答
編輯回答
你好胸

你可以去參考一下https://github.com/watchdog-framework/watchdog-framework的前端項(xiàng)目設(shè)計(jì),大概是這樣的一個(gè)思路:

后端返回給前端的響應(yīng):

{
    "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代表每頁(yè)顯示數(shù)量
  • data.current代表當(dāng)前頁(yè)
  • data.pages代表總頁(yè)數(shù)

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

2018年6月6日 00:57
編輯回答
放開(kāi)她

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

{
    pageSize:100,
    pageNumber:1
}

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

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

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

2018年2月5日 06:20