显示效果:
[页面总数小于等于10,全部显示,当前页特殊显示]
上一页  1   2   3   4   5   6   7   8   9   10   下一页

[页面总数大于10,部分显示,当前页特殊显示]
上一页  1   2   3   …   20   下一页       [当前页面为首页时,上一页不可用]
上一页  1   2   3   4    …   20   下一页
上一页  1   2   3   4   5    …   20   下一页
上一页  1   2   3   4   5   6   …   20   下一页
上一页  1   …    3     4    5    6    7     …  20  下一页  
上一页  1   …   14   15  16  17  18    ...  20  下一页
上一页  1   …   15   16  17  18  19  20  下一页
上一页  1   …   16   17  18  19  20  下一页
上一页  1   …   17   18  19  20  下一页
上一页  1   …   18   19  20  下一页  [当前页面为末页时,下一页不可用]

算法提取:
0
、页码显示规则:
          当前页为首页时不显示上一页;      上一页  1   2   3   …   20   下一页 
          当前页为尾页时不显示下一页;      上一页  1   …   17   18  19  20  下一页
1、页面总数(n)<=10 {
          显示全部页码:上一页  1   2   3   4   5   6   7   8   9   10   下一页
    }

2、页面总数(n) > 10 {
2.1     当前页码 <=  4 {
                 左侧显示所有 +  当前页码  +  右侧2个页码 + ... + 尾页
                        上一页  1   2   3   …   20   下一页       
                        上一页  1   2   3   4    …   20   下一页
                        上一页  1   2   3   4   5    …   20   下一页 
                        上一页  1   2   3   4   5   6   …   20   下一页
          }

2.2      当前页码 > 4 且<= 页面总数(n) - 3 {
                  首页  + ... + 左侧2个页码  + 当前页码  + 右侧2个页码  + ...  +  尾页
                        上一页  1   …    3     4    5    6    7     …  20  下一页
                        上一页  1   …   14   15  16  17  18    ...  20  下一页
          }
2.3      当前页码 > 页面总数(n) - 3 {
                  首页 + ... +  左侧2个页面 +  当前页码  +  右侧显示所有
                        上一页  1   …   15   16  17  18  19  20  下一页
                        上一页  1   …   16   17  18  19  20  下一页
                        上一页  1   …   17   18  19  20  下一页
                        上一页  1   …   18   19  20  下一页
          }
    }

-----------------------------上面和下面均为转载他人的。下面为翻译为java语言,在程序里使用很方便---------------------------------

public class PageTest {

    public static String pageControl(int page,int count){
String strHtml = ""; if(page > 1){
strHtml += "上一页";
}
if(count <= 10){
for(int i = 1;i<=count;i++){
if(page == i){
strHtml+=" ["+i+"]";
}else{
strHtml+=" "+i;
}
}
}else{
if(page<4){
for(int i = page-1;i>0;i--){
strHtml+=" "+i;
}
strHtml+=" ["+page+"]";
strHtml+=" "+(page+1);
strHtml+=" "+(page+2);
strHtml+=" ...";
strHtml+=" "+count; }
if(page>4 && (page<=count-3)){
strHtml+=" "+1;
strHtml+=" ...";
strHtml+=" "+(page-2);
strHtml+=" "+(page-1);
strHtml+=" ["+page+"]";
strHtml+=" "+(page+1);
strHtml+=" "+(page+2);
strHtml+=" ...";
strHtml+=" "+count; }
if(page>count-3){
strHtml+=" "+1;
strHtml+=" ...";
strHtml+=" "+(page-2);
strHtml+=" "+(page-1);
strHtml+=" ["+page+"]";
for(int i = page+1;i<count;i++){
strHtml+=" "+i;
}
} } if(page < count){
strHtml += "下一页";
} return strHtml;
} public static void main(String[] args) {
System.out.println(PageTest.pageControl(6, 20));
}
}

ajax js分页算法分析的更多相关文章

  1. jQuery+AJAX实现纯js分页功能

    使用jQuery的AJAX技术,在bootstrap的框架下搭建的纯js分页 bootstrap作为Twitter推的一款前端框架,效果个人还是觉得很不错的.这次只是拿来作为网页元素的css样式表使用 ...

  2. Ajax做分页

    Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...

  3. 5.Hibernate实现全套增删改查和ajax异步分页

    1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...

  4. 浅谈js分页的几种方法

    一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...

  5. JS分页条插件

    目标 制作js分页导航jq插件,用于无刷新分页或者刷新分页 实现目标参考京东和天猫的分页条. 有四个固定按钮,前页码,后页码,首页,末页. 程序关键点在于计算中间页面的起止位置.逻辑是以当前页码为参照 ...

  6. PHP中使用jQuery+Ajax实现分页查询多功能操作

    1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UT ...

  7. ajax+js数据模板+后台

    .net 后台,ajax+js模板引擎的数据填充,制作无刷新分页 js模板用laytpl 待续...

  8. 非常不错的一个JS分页效果代码

    这里分享一个不错的js分页代码. 代码中cpage是页面计数,应为全局变量,可以随处调用它: totalpage是总页数. 与asp分页代码很类似,也是先取得记录总数,然后实现分页,基本的分页思路与原 ...

  9. django基础之Ajax、分页、cookie与session

    目录: Ajax之json Ajax简介 jquery实现的ajax js实现的ajax django分页器 COOKIE与SESSION 一.Ajax之json 1.什么是json? 定义: JSO ...

随机推荐

  1. Java IO: ByteArray和Filter

    作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中字节数组与过滤器的输入输出流,主要涉及以下4个类型的流:ByteArr ...

  2. 几个简单又实用的PHP函数

    简单方便使用: /** * 将多维数组转为一维数组 * @param array $arr * @return array */ function ArrMd2Ud($arr) { #将数值第一元素作 ...

  3. Harbor快速搭建企业级Docker仓库

    Github: https://github.com/goharbor/harbor 改端口安装: https://www.cnblogs.com/huangjc/p/6420355.html 相关博 ...

  4. The Basic Of K8s

    k8s 基础概念 1.一个k8s集群包括 一个Master节点(主节点) 一群Node节点(计算节点) 2.Master节点 包括API Server.Scheduler.Controller man ...

  5. Koa 学习

    中间件引擎 1234567891011121314151617181920212223242526272829303132333435363738 const Koa = require('koa') ...

  6. 分割文件和数据(linux)

    在某些情况下,必须把文件分割成多个更小的片段.如今我们分割文件的目的比如:提高可读性.生成日志.通过Email发送文件等等. 假设我们有一个erro.log的测试文件,其大小为14M.你可以将该文件分 ...

  7. sql--自链接(推荐人)

    表1: 需求:查出推荐人,和被推荐人 1.通过group_concat函数和分组,查出每个id推荐的人有哪些 select group_concat(u_name, u_id) as referce_ ...

  8. Ambari2.7.4+HDP3.1.4安装 Centos7离线安装

    一. Ambari等简单介绍 1.1Ambari Ambari是一种基于Web的工具,支持Apache Hadoop集群的创建 .管理和监控. Ambari已支持大多数Hadoop组件,包括HDFS. ...

  9. js变量提升、函数提升详解

    一.变量提升是指将变量声明提升到它所在作用域的最开始部分 console.log(a) // 为什么会出现以上的结果,是因为js的变量提升,将a变量的声明提升到全局作用域的最上面部分,实际代码如下: ...

  10. UBB代码

    UBB代码是HTML(标准通用标记语言下的一个应用)的一个变种,是Ultimate Bulletin Board (国外的一个BBS程序)采用的一种特殊的TAG.您也许已经对它很熟悉了.UBB代码很简 ...