关于分页器不传总数的情况

建议 未结
9 104
作伴
作伴 6天前
悬赏:20飞吻
对于后端来说,当表数据足够大时,这时要算出total这个总数是非常耗时的。
现在很多分页数据的接口,是没有总数的。对于到前端的表现是只有上一页和下一页。
但是layui分页器目前并不支持这个,麻烦考虑实现。
回帖
  • 没看懂,后端查询数据库得到总数啊,不然怎么分页?
    0 回复
  • Ryadmin
    6天前
    后台返回的参数里 有个count 这个参数就是总数。你看一下你这个参数返回来的是什么。
    0 回复
  • 数据查询个总数很耗时么。。你是有多大的量啊;
    后台查询是分两次的,一次是当前页的数据,一次是查总数,再合并返回的
    0 回复
  • 我的分页,给你参考,也请大家指正
    $acid = $_GET["acid"];
    $page = $_GET["page"];
    $Page_size = $_GET["limit"];//每页显示记录数
    $sql = "SELECT * FROM cs where acid='$acid' ORDER BY curtime DESC";
    $result=mysqli_query($conn,$sql);
    $count = mysqli_num_rows($result); //得到数据总数
    $offset=$Page_size*($page-1);
    $sql .=" limit $offset,$Page_size";

    //查询数据库并转换为JSON


    echo '{"code":0,"msg":"","count":',$count,',"data":',$data,'}';
    0 回复
  • 作伴
    3天前
    @莫名其妙78 就是想只要上一页,下一页。不需要总共多少页,和1,2,3,4.....10这些页码。
    0 回复
  • 作伴
    3天前
    @Ryadmin 后端不想返回count,数据量大时算这个太耗时了
    0 回复
  • 作伴
    3天前
    @mryue91 对于一些大表,并且业务逻辑复杂,可能会有很多查询条件。这样下来,两次查询得1s多。
    而两次查询查询,主要时间耗在查总数上。查当前页的数据,在limit较少时,是比较快的。
    如果不查总数,只查当前页的数据,时间可以控制在200ms内。
    0 回复
  • @作伴 https://www.layui.com/demo/laypage.html

    那你看下这里吧,自己改改
    0 回复
  • 作伴
    3天前
    @mryue91 这个例子也是要传count,只是不显示页码选择而已
    0 回复