如果想要对支持分页的数据源的结果进行分页,我们必须执行以下流程:
- 定义页面大小——即每页显示的结果数量;
- 使用偏移量 = 页码(基于 0)* 页面大小获取用户请求的每个页面
- 显示获取页面的结果。
所有这一切都很好,没有考虑到一个操作可能会影响后端系统,从而搞砸正在发生的分页。我说的是有人在页面获取或删除数据之间插入数据。
page_size = 10;
get page 0 -> results from 0 to 9;
user inserts a record that due to the query being executed goes to page 0 - the one just shown;
get page 1 -> results from 10 to 19 - the first results on the page is the result on the old page 0.
所描述的行为可能会引起观众的困惑。您知道解决此问题的任何实用解决方案吗?