分页实践:前后端多种分页方式实现对比

分页实践:前后端多种分页方式实现对比

在软件开发中,分页没有统一的规范,实现方式也各不相同,有的会返回总页数,有的会返回总条数,有的可以任意翻页。本文对比一下几种常见的分页方式。

总体来说,分页的实现方案分为四种:

后端全部返回,由前端分页

limit offset方案

cursor方案

cursor方案与offset结合

后端全部返回,由前端分页

前端功能

支持情况

显示总页

🙂

任意页码跳转

🙂

跳转附近数页

🙂

大量数据集

😭完全不可用

实现难度

简单

limit offset方案

前端功能

支持情况

显示总页

🙂

任意页码跳转

🙂

跳转附近数页

🙂

大量数据集

😭海量数据集下性能差

实现难度

相对简单

cursor方案

前端功能

支持情况

显示总页

🙂

任意页码跳转

😭

跳转附近数页

🙂

大量数据集

🙂

实现难度

相对复杂

如果每一次翻页都返回总页数的话,对性能来讲也是不小的开销。

相对动态的数据来说,如果不一直翻到没有数据为止,也不好确定是否到了最后一页。为了解决这个问题,以及跳转附近数页的问题,可以演进为这样的方案。

假定前端最多显示最近6页,每页50条数据,那么前端可以直接尝试预读300条数据,根据返回的数据来做局部的分页。一言以蔽之:读取更多的数据来进行局部分页。

这里可以再简化一下前端的实现,添加offset参数,这样子前端只需要判断当前页前后数据条数是否足够,附近页的跳转可以通过携带offset字段请求得到。

cursor方案与offset结合

相关推荐

365bet体育在线世界杯 向华强叱咤娱乐圈的亿万富翁,年收入1300亿
365bet足球外围 酷派8720评测:机身细节|屏幕显示
365bet体育在线世界杯 iphonese手机电池容量有多大

iphonese手机电池容量有多大

📅 08-14 👁️ 3895