010-64928252 400-6446-365

在web应用中分页计数的优化

2017-04-12
  在企业网站建设web应用中在信息列表、内容页等页面软长的地方都会遇到分页的问题。分页时需要要查列表并计算总行数,然后才能知道分几页。如一个列表页有126行,一页20行的话就需要分7页。其计算方式是:

  计算总行数:select count(*) from tablename where …查询列表select * from tablename where … limit…以上这种方式是在没有任何优化的方式下的列表分页方式,在数据更新频率不是很高的情况下,点第1页,第2页。。。第n页,其实在第一句sql得到的结果都是一样的,那么后面的工作就是可以通过优化来提高速度的。


在web应用中分页计数的优化


  一种情况是:网站列表分页链接第2页是这样的list.php?page=2&count=126在程序上加一个判断来对列表进行优化

  if ($_GET['count']) {

  $count = $_GET['count'];

  } else {

  $count =select count(*) from tablename where …}

  这样优化以后如果我们只有第一页才计算总数,后面的页数都不用了,从而提升了网站列表分页的效率。

  还有这么种情况是:在模糊查询的情况下,都去计算总数是没有必要的,而且模糊查询效率也比较低。所以我们可以先查询列表,如果列表结果数=20,那么我们再查询总行数,如果小于20的话那么就只有一页。

  伪代码为:

  if ($_GET['page']<2) {

  $list = select * from tablename where … limit 0,20第一页时直接查询前20条if (count($list)=20) {$count =select count(*) from tablename where …} else {$count =count($list);

  }

  } else {

  $count = $_GET['count'];

  $list = select * from tablename where … limit page-1*20,page-1*20+20}

  以上代码可能比较难看懂,不过在这里分形科技要为大家介绍的是一种思路,明白了思路以后就可以自己写了。

  当然,还有一种可以直接查收而不计算总行数的方法,即通过当前列表结果是否=20来决定是否显示下一页链接。我们需要明折的是列表分页的方式有很多,弄清楚思路才是最重要的,所以在网站建设web应用中分页计数优化的重点在于找准备思路问题。
TAG标签耗时:0.0024499893188477 秒
010-64928252/400-6446-365 我现在就想找顾问聊聊
让决策变的简单
好的开始是成功的一半
您需要一位互联网
顾问提供专业咨询
高端网站建设 · 小程序 · APP · 微信 · H5网站 · 电商平台建设
网络营销 · 年度运营 · H5场景 、游戏 · VR 、AR · AI人工智能