滚动分页
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();
}
});
}