`

仿goolge分页算法

阅读更多

下面我们来以最大页数显示6页,开始只显示3页来分析Google分页
当前页小于4时
在页数大于6时       没啥好说的
开始显示
1 2 3      当前页是1      
1 2 3 4         当前页是2       
1 2 3 4 5   当前页是3       
1 2 3 4 5 6 当前页是4  

小于四中另一种情况 总页数小于当前面的最大索引值
如:总页数是2 ,本页的最大索引值是3
那么应该显示
1 2 

当前页大于4时
当大于4时 总页数够大 没啥好说的
2 3 4 5 6 7         当前页是5        起始值是2    未页 7
3 4 5 6 7 8         当前页是6        起始值是3    未页 8
4 5 6 7 8 9         当前页是7        起始值是4    未页 9
5 6 7 8 9 10        当前页是8        起始值是5    未页 10

大于四的第二种情况
最后一页的索引值大于记录总页数并且大于这一页要显示的最大索引值
最后一页的索引值=总记录数
这页的开始索引值=这页的总记录数-5

大于四的第三种情况
最后一页的索引值小于这一页要显示的最大索引值,这种情况中存在这个区期
google页面中最大显示页/2+1    到   google页面中最大显示页-1 之间
              这页的开始索引值 = 1
     这页的结束索引值 = 总记录的面数

整合后的代码如下:

privateintnowpage;// 当前页
    privateintcountrecord;// 总记录数
    privateintcountpage;// 总页数
    privateintpageindex;// 当前页记录开始的位置 (nowpage-1)*PAGESIZE
    publicstaticfinalintPAGESIZE = 5;// 每页显示的记录数
    privateintsumindex = 6;//索引的sum值代表的是 google页面中最大显示页数
    privateintstartindex;// 开始的索引值
    privateintendindex;// 结束的索引值

// 计算索引位置
       if (this.nowpage <= 4) {//当前页小于第四页
   
this.startindex = 1;
           this.endindex = this.nowpage + 2;
//但是第一页显示的页数(endindex)大于了总记录数实际有的页数
           if(this.endindex>this.countpage){           
                this.endindex=this.countpage;
           }
          
       }elseif(this.nowpage>4){ //当前面大于第四页
           this.startindex=this.nowpage-3;
           this.endindex=this.nowpage+2;
//最后一页的索引值大于记录总页数并且大于这一页要显示的最大索引值
if(this.endindex>this.countpage && this.endindex > this.sumindex){
              this.endindex=this.countpage;
              this.startindex=this.countpage-5;
           }
//最后一页的索引值小于这一页要显示的最大索引值,这种情况中存在这个区期//sumindex/2+1 到 sumindex-1 之间
           if(this.endindex < this.sumindex){
              this.startindex = 1;
              this.endindex = this.countpage;
           }
       }

 

本文原地址:http://student.csdn.net/space.php?uid=1038661&do=blog&id=56378

分享到:
评论

相关推荐

    JSP实现类似百度,google的分页

    JSP实现类似百度,google的分页.JSP,仿,google,分页,servlet分页

    Google搜索技术解析 页面排序技术展示

    解密Google pagerank算法 剖析Google页面排序的奥秘

    searchGS:搜刮Google Scholar中的搜索数据的算法

    R中的算法可从Google Scholar中进行的搜索中抓取数据。 必须安装Firefox浏览器才能与Selenium软件包一起使用。 功能清单 从存储库上传带有功能的文件 来源(“ ”) 在Google学术搜索中添加搜索链接(此链接是在GS...

    网趣网上购物系统HTML静态版 2016.rar

    系统进行了大量的实用性更新,如优化核心算法、增加商品图片批量上传、谷歌地图浏览插入等,静态版独特的生成算法技术使静态生成过程可随意掌控,从而可以大大减轻服务器的负担,结合多种强大的SEO优化方式于一体,...

    MyEngine搜索引擎小偷程序 1.0 beta.rar

    1.支持的搜索引擎为:百度、google、雅虎、 有道。 2.支持搜索引擎权重自定义,默认为1:1.2:1.5:0.8。 3.开始使用搜索结果权重算法第一版(仅包含搜索结果权重)。 4.对搜索结果进行分页处理。 5 对搜索结果...

    PHP工作笔记.zip

    留言板][第二例 WebUpload文件上传][第三例 UEditor文本编辑器][第四例 验证码][第五例 ThinkPHP自定义分页模板][第六例 加密解密][第七例 Excel表格导入][第八例 Excel表格导出][第九例 百度地图][第十例 谷歌地图]...

    网趣网上购物系统HTML静态版 v2016 购物网站源码

    系统进行了大量的实用性更新,如优化核心算法、增加商品图片批量上传、谷歌地图浏览插入等,静态版独特的生成算法技术使静态生成过程可随意掌控,从而可以大大减轻服务器的负担,结合多种强大的SEO优化方式于一体,...

    ngx-datatable:for专为Angular设计的功能丰富但轻巧的数据表

    表达头和单元格模板水平和垂直滚动列重新排序和调整大小客户端/服务器端分页和排序智能列宽算法(强制填充和伸缩增长) 集成寻呼机单元格和行选择(单,多,键盘,复选框) 固定和流体高度左右列固定行详细视图主题...

    PHP商城系统 V2.0.5 beta 2.rar

    大家关心的百度和谷歌搜索引擎录取的问题,我们针对每产品可以SEO优化、便于您的网站在谷歌和百度搜素引擎排名。  【说明】由于静态页面的生成 ,部分模板有改动,V2.0.5一下的模板可能有部分不能使用 或者出现...

    北语15春《计算机科学导论》作业3.doc

    分页调度 C. 请求分段调度 D. 虚拟内存 -----------------选择: 8. 网络操作系统的英文缩写是()。 A. TSOS B. iOS C. RTOS D. NOS -----------------选择: 9. ()是指允许不同类的对象对同一消息作出响应。 A. ...

    JAVA上百实例源码以及开源项目源代码

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    JAVA上百实例源码以及开源项目

     关于数字签名:产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics