如何在网页上进行分页?

时间:2012-08-03 04:51:51

标签: database web-applications paging

从数据库“可分页”制作结果集涉及哪些原则或实现?

如何在不将内存存储的情况下分页超过一百万条记录?当有100页时,什么允许从5跳到第50页?

我正在寻找关于如何完成分页的伪代码解释。

2 个答案:

答案 0 :(得分:1)

通常,“下一步”按钮的URL中有一些内容可以修改呈现页面的数据库查询。然后,该渲染页面会破坏下一个URL中的索引。

因此,第一页可能是一个有LIMIT 20的SQL请求,第2页也有LIMIT 20但也有OFFSET 20.

所以在该模型中一次只加载了20个项目,但该页面还会加载已偏移的项目数量,并更改“下一页”URL。

通常还会有一个函数来检查您相对于项目总数的位置,以便页面知道它是否应该显示下一个链接。

答案 1 :(得分:1)

基本前提是要记住以下内容:

  1. 定义页面大小,即每页的记录数(PAGE_SIZE
  2. 了解集合中的记录总数。然后你可以计算出有多少页面。 var numPages = totalNumRecords / PAGE_SIZE;
  3. 使用变量跟踪页码,例如Page = 1
  4. 执行下面显示的简单Skip / Take算法,您将拥有页面
  5. 所需的元素

    Skip((page - 1)*PAGE_SIZE).Take(PAGE_SIZE);

    那么当您点击结果的数据源时会发生什么,您将跳到所需的记录集并采取规定的数量。希望这是有道理的。