文档章节

App列表流式分页后端接口处理

uniz
 uniz
发布于 2017/07/22 21:50
字数 549
阅读 21
收藏 0

前些天为解决流失分页列表中item重复的问题查了很多资料,也得到了很多人指点,现将一些通用的解决方案记录一下,流式分页与传统pc网站上分页的区别就是当请求下一页数据的时候,之前请求的数据仍然回显示在列表上,因此当两次请求数据的排序有变动时,可能回出现数据重复或丢失现象,这里仅统计一些解绝数据重复的方法。

  1. 最大id限制(当然也可以不是id):没次给前端返回数据的时候,多返回一个当前列表的最大id字段,下次请求的时候将这个最大id在传给后端,后端根据最大id做判断,不返回id比当前最大id小的数据,这种方式一般只适用于没有排序要求的列表,也是最通用的解决方案
  2. 最后更新时间限制:这种方式和最大id的原理上是相同的,接口对没次请求返回当前时间,下次请求前端将这个时间传给接口,后端根据最后更新时间过滤在此之后有更新的数据;缺点:有可能导致数据显示不全
  3. 前端去重:这个就不必多说了,当然前端需要注意一下发起下一页请求的时机(我们最后也采用的这种方案)

还有人提出一些思路,需要接下来去思考验证 4. 做一个缓冲区,每次够一页的数据之后在返回给前端
5. 利用redis的zset
6. sql中使用union(这个是我是真的没有理解,链接 https://www.oschina.net/question/933354_2256138 ,欢迎大家指点一二)
7. 加缓存(这个我认为解决不了问题)
8. 实在不行砍需求吧,别搞那么复杂的排序

利用 mysql 进 行分页,将所有的排序条件都传给客户端,并切条件中有唯一值,就能解决这个重复的问题

© 著作权归作者所有

uniz
粉丝 2
博文 1
码字总数 549
作品 0
张家口
后端工程师
滑动窗口式分页的实现

我的一个工程里需要用到滑动窗口式分页这个效果,我没有直接使用现成的库,而是尝试自己实现了一下,我把实现的过程和大家分享一下吧,希望能对需要的朋友有所帮助。 先来看要实现的效果: ...

since1986
2017/11/14
0
0
Exrick/xmall-front

XMall-Front 基于Vue开发的XMall商城前台页面 项目已部署,在线Demo 前台商城:http://xmall.exrick.cn/ 后台管理系统:http://xmadmin.exrick.cn/ 感谢 yucccc 的开源 vue-mall 项目提供前端...

Exrick
04/21
0
0
“不吹不黑”说一说列表页多"简单"

前言 相信随着前端职业的兴起,有不少后端或者项目经理觉得前端不就那么回事么?甚至于有些时候,后端一看这么个简单的东西也要做一天?那么本文就带大家了解一下一个还算正常的手机列表页需...

RobinsonZhang
08/10
0
0
mysql分页技术分析

转:http://www.scienjus.com/app-server-paging/ APP分页技术 移动端套用传统分页的缺点 目前数据分页一般分为两种类型:传统网站比较常见的电梯式分页布局及移动端比较常见的流式分页布局。...

北极之北
2016/02/25
574
4
vue-quasar-admin 一个包含通用权限控制的后台管理系统

vue-quasar-admin   Quasar-Framework 是一款基于vue.js开发的开源的前端框架, 它能帮助web开发者快速创建以下网站:响应式网站,渐进式应用,手机应用(通过Cordova),跨平台应用(通过Ele...

若邪
05/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
30分钟前
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
1
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
9
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0
OpenCV边缘检测算子原理总结及实现

1. 拉普拉斯算子 原理:是一种基于图像导数运算的高通线性滤波器。它通过二阶导数来度量图像函数的曲率。 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉...

漫步当下
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部