您需要AI互联网
顾问提供专业咨询
AI人工智能 · VR · AR · 智慧博物馆 · 智慧公园 · 景区 · 文创 · 动画 · 游戏 · 年度运营
大模型定制 · WEB3 · 元宇宙 · 高端网站建设 · 小程序 · APP · 微信 · H5 · 电商
在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应用中分页计数优化的重点在于找准备思路问题。
400-6446-365 / 010-64928252 我想要个更针对我需求的方案
让决策变的简单
好的开始是成功的一半
请输入关键字