滚动分页 SpringBoot PageHelper

滚动分页

Controller

        //取第几页
        int pageIndex = Integer.parseInt(rq.getParameter("page"));
        //设置每页显示10条数据
        PageHelper.startPage(pageIndex,10);
        //调用方法
        List<User> allUser = userService.getUserByCondition(user);
        //获取总页数,传递给前端
        //为了之后不重复显示相同内容
        if(pageIndex == 1){
            PageInfo<User> pageInfo = new PageInfo<User>(allUser);
            int pages = pageInfo.getPages();
            rq.getSession().setAttribute("pages", pages);
        }

Ajax

  • 如果pageIndex==pages,就不再重复显示
  • 滚动后页数++,再重新show()调用Controller
  • show()方法是获取数据库的值后,append到页面,不清楚原有内容,所以第二页时候会把第二页的内容继续append进去
  • 注意:Controller我将pages存在了session中,页面写了一个hidden取这个值,再用js取得这个值放入Ajax中
/*-------------------------------------滚动分页-------------------------------------*/
function rollPage(){

    $(window).scroll(function () {
        //$(window).scrollTop()这个方法是当前滚动条滚动的距离
        //$(window).height()获取当前窗体的高度
        //$(document).height()获取当前文档的高度
        var bot = 500; //bot是底部距离的高度
        if ((bot + $(window).scrollTop()) >= ($(document).height() - $(window).height())) {
            //当底部基本距离+滚动的高度〉=文档的高度-窗体的高度时;
            //我们需要去异步加载数据了
            if(pageIndex == pages){
                return false;
            }
            pageIndex++;
            show();
        }
    });
}
上一篇:pageHelper 自动分页插件


下一篇:MyBatis中分页工具PageHelper的使用