栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

后端分页应该注意的事项

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

后端分页应该注意的事项

分页前应该保证数据的有序性

在进行分页之前必须保证数据是有一定的顺序的,不能够随机
如果随机:

第一次请求第一页时,A数据可能被随机到第一页。当第二次请求时请求第二页,A数据在分页之前可能跑到第二页的数据的位置,此时再进行分页,就会发现本来在第一页出现过的数据A,又在第二页中重复出现。
很多朋友都会疑问,既然mysql中使用limit之前mysql已经默认排好序了,怎么会出现这个问题呢?
这时就要注意了,实现分页的方案并不是只有从mysql中使用limit呀。还有一种方法就是直接把全部数据查询出来,在service层中进行分页,所以刚刚这种场景就会出错。
如何在service层进行分页,可以看我的博客:https://blog.csdn.net/qq_56769991/article/details/125447487


在工作时,业务要求将查询出来的数据进行分页并随机排序,因为数据量较小,我是直接将全部数据查出来,在service中进行随机排序后,再进行的分页操作,这就造成了数据在第一页和第二页存在数据重复的情况。

所以在进行分页之前必须保证每个数据在一个确定的位置上,这样才会保证数据不会重复出现。

那随机排序怎么搞呢?
在进行分页的情况下,没有整体的乱序,只有局部乱序,即分页后,对当前页进行乱序操作。

结论:在进行分页操作之前:总体的数据的位置不能改变,否则会在不同页看到相同的数据(除了业务上在数据库插入新数据除外)

分页后应该保证当前页中的数据数量不变

分页后的数据,我们可以对分页后的当个数据项内容进行更改,但是千万不要添加新的数据项,否则可能造成"数据丢失"。比如我现在查询到10条数据,现在这边又将两个数据项添加到列表中,变成了12 ,但是前端只要你12条数据,你这被挤出去的2条数据就丢失了,下一页也不会出现你这两条数据。

结论:千万不要尝试在分页后添加新的数据项,否则会造成数据丢失(除非你有办法把将丢失的数据显示到前端

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号