美文网首页
前后端合作开发分页功能(一)

前后端合作开发分页功能(一)

作者: hygg00660 | 来源:发表于2017-07-12 12:06 被阅读165次

前言:互联网的本质和核心就是数据的传递和共享。就前后端合作开发项目而言,一个不能回避的问题就是对数据的罗列,这就涉及到数据分页功能的开发。

需求简述

1、简单型

最简单的分页只需要每次加载出指定数量的数据即可,不用考虑其他的因素,最常见的就是移动端的各种滑到底部上拉加载更多。这种分页只需要高度条到底了就出发Post请求,向后台发送固定的数据参数以及动态变化的Page即可:

//封装post请求
var GetData=function(paramater1,paramater2,page){
    $.post("/MyController/GetMyDate",{
            par1:paramater1,
            par2:paramater2,
            thepage:page
        },function(data){
            console.log(data);
            //进行数据处理和呈现
            ······
    });
};

//初始化页码
var  page_num=1;

//进行首次请求
GetData(myParamater1,myParamater2,page_num);

//封装“加载更多”,事件监听
$(window).scroll(function(){
  var scrollTop = $(this).scrollTop();
  var scrollHeight = $(document).height();
  var windowHeight = $(this).height();
    //判断到底部触发事件
  if(scrollTop + windowHeight == scrollHeight){
     //页码加一,查询条件不变
       page_num+=1;
       GetData(myParamater1,myParamater2,page_num);
  }
});

Ps:有一个问题需要注意,倘若用户下滑到底部,当请求尚未完成时,用户不耐烦地再次滑动了一下,又一次触发了请求,这样对服务器来说可是个大Bug,如何解决呢?我想了一个笨办法:加入一个变量对scroll事件进行控制,具体代码如下:

//封装post请求
var GetData=function(paramater1,paramater2,page){
    $.post("/MyController/GetMyDate",{
            par1:paramater1,
            par2:paramater2,
            thepage:page
        },function(data){
            console.log(data);
            //进行数据处理和呈现
            ······
    });
};

//初始化页码
var  page_num=1;
//是否加载成功
var if_get=true;

//进行首次请求
GetData(myParamater1,myParamater2,page_num);

//封装“加载更多”,事件监听
$(window).scroll(function(){
  var scrollTop = $(this).scrollTop();
  var scrollHeight = $(document).height();
  var windowHeight = $(this).height();
    //判断到底部触发事件+是否加载成功
  if(scrollTop + windowHeight == scrollHeight && if_get==true){
       //请求完成前,设置if_get的值
       if_get=flase;
     //页码加一,查询条件不变
       page_num+=1;
       GetData(myParamater1,myParamater2,page_num);
       //请求完成后,设置if_get的值
       if_get=true;
  }
});

当然了,这种简单的下滑加载更多在很多框架(例如Mui等)里都可以很便捷得实现,若以上代码有误或思路不佳,欢迎拍砖。(未完待续······)

相关文章

  • 前后端合作开发分页功能(一)

    前言:互联网的本质和核心就是数据的传递和共享。就前后端合作开发项目而言,一个不能回避的问题就是对数据的罗列,这就涉...

  • 模板接口

    目录 后端模板匹配实现过程 1. 后端模板匹配实现过程属性 接口功能 返回用户照片分页信息,并按照模板内容和分页照...

  • 前后端开发之分页操作

    分页操作的做法有很多种,可以通过前端分页,也可以通过后端分页。在此本人在后端分页(基于spring boot+vu...

  • 前后端开发之分页操作

    分页操作的做法有很多种,可以通过前端分页,也可以通过后端分页。在此本人在后端分页(基于spring boot+vu...

  • elementUI实现分页

    分页的两种方式。前端分页,后端分页。两种方式各有个的优缺点吧。 前端分页:后台只需将数据返回,不需要做过多处理,前...

  • 分页(不用插件)

    搜索结果分页显示 1.功能要求: 我们之前在后台学过一个分页控件.但是那个控件可以用在后端,因为后台不用考虑美观等...

  • 大数据量下,如何优化mysql的分页查询

    如上述,许多网站的分页功能的底层实现就是依赖前端给后端传来一些参数,比如起始页和页面大小,来结合limit控制分页...

  • sprintboot+layui前后端分页实践

    前言 近期开发的一个web系统中,最初所实现的“分页”功能,实质是假分页,后端接口一次性返回所有符合条件的数据, ...

  • sprintboot+layui前后端分页实践

    前言 近期开发的一个web系统中,最初所实现的“分页”功能,实质是假分页,后端接口一次性返回所有符合条件的数据, ...

  • Vue2自定义分页组件

    分页是WEB开发中很常用的功能,尤其是在各种前后端分离的今天,后端API返回数据,前端根据数据的count以及当前...

网友评论

      本文标题:前后端合作开发分页功能(一)

      本文链接:https://www.haomeiwen.com/subject/citbhxtx.html