显示效果:
[页面总数小于等于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. Nginx笔记总结九:Nginx日志配置

    ngx_http_log_module用来定义请求日志格式1. access_log指令 语法:   access_log path [format [buffer=size [flush=time] ...

  2. basecalling|vector mark|Assembly的难题|

    生物信息学 染色体可以据染色图谱判断染色体号码,1-22号染色体依次变短,它们影响机体发育,23号染色体决定性别.肿瘤是由于遗传密码变异造成的.因此,遗传密码的解读非常重要,但是因为遗传密码长度非常长 ...

  3. node新人

    node  使用   http和express创建服务器环境 如 apache  iis等 不需要配置一堆文件  为啥使用node  省事  v8引擎  异步js 不影响浏览者浏览网站 redis   ...

  4. 地理位置(Geolocation)API 简介

    一.开篇简述 Geolocation API(地理位置应用程序接口)提供了一个可以准确知道浏览器用户当前位置的方法.且目前看来浏览器的支持情况还算不错(因为新版本的IE支持了该API),这使得在不久之 ...

  5. 吴裕雄--天生自然KITTEN编程:青蛙答题过河

  6. 一、HTTP和HTTPS的基本概念

    1HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少. 2HT ...

  7. 分析Java中的length和length()

    在不适用任何带有自动补全功能的IDE的情况下,我们怎么获取一个数组的长度?如何获取字符串的长度? 这里我们先举用实例去分析一下:int[] arr=new int[3]:System.out.prin ...

  8. Linux 下的/usr/bin /usr/sbin /usr/local/bin /usr/local/sbin区别

    一./usr/sbin与/usr/bin区别: 1./usr/sbin:root权限下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统: 2./usr/bin普通用户 ...

  9. 确认下眼神!有没有遇上对的工资(测试leader)

    屏蔽敏感信息,直接上图: ▼

  10. py基础之有序列表

    L =['adam',95.5,'lisa',85,'bart','bart',59]print (L)#list是一种有序的列表,可以使用索引访问每个list中的值print (L[1])#list ...