~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

分页是又基础又重要的功能,常常用于大量数据。简单说,有一堆数据,比如100条,1000条,然后按照每页N个进行显示,其模型是比较简单的。现在写个专题来探讨一下。

一、取数据的问题

为了简化说明,把数据抽象成数组,假定有100条数据,按照每5条为一组进行分页。参看下图

 

如上图所示,左侧为数据,临时容器就是暂存,比如暂存5条数据,实际渲染的就是临时容器的内容。

现在看一下对应关系

页        取数据范围
1   0-4
2   5-9
3   10-14
.....

一、计算取值范围(公式必背)

设变量currentPage=当前页,每页分组条数为N,则可以得出如下结果:

(currentPage-1)*N =< scope < currentPage*N

其中,(currentPage-1)*N为范围头部,currentPage*N为尾部。

代码如下:

for (var i = (currentPage - 1) * N, len = data.length; i < currentPage * N && i < len; i++) {
                容器.push(data[i]);
            }

这里有个需要注意的问题,分组的整数倍总是大于或等于数据的总长度!所以在循环要判断i的值一定得小于数据的长度。

 

二、列表操作的问题

 

posted on 2018-06-10 20:43  LuoTian  阅读(250)  评论(0编辑  收藏  举报