显示效果:
[页面总数小于等于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. absorb|state|

    ADJ-GRADED 极感兴趣的:专心的:全神贯注的If you are absorbed in something or someone, you are very interested in th ...

  2. 初级vector

    标准库vector类型 #include<vector> using std::vector; vector为一个类模板. vector的初始化 vector<T> v1; v ...

  3. IOUtils和FileUtils的学习笔记

    pom文件导入依赖import org.apache.commons.io.FileUtils; <dependency> <groupId>commons-io</gr ...

  4. Spring中的事件处理

    文章目录 Spring中的事件处理 Spring 的核心是 ApplicationContext,它负责管理 beans 的完整生命周期.当加载 beans 时,ApplicationContext ...

  5. Uber刷单,刷出中国的人性劣根?

         美国叫车应用Uber国际化之路一直挺顺利的,融资也挺顺利的,他们现在很有钱,最新总融资金额达到100亿美元,创下美国非上市高科技公司的融资纪录.全新的商业模式,以及优质的客户体验,让Uber ...

  6. 用 20 行 python 代码实现人脸识别!

    点击上方"Python编程与实战",选择"置顶公众号" 第一时间获取 Python 技术干货! 阅读文本大概需要 11分钟. 今天给大家介绍一个世界上最简洁的人 ...

  7. Atom配置(VIM党) · iuunhao

    为什么说是Vim党呢?首先我是一个深度的Vim用户,自己的电脑上基本上可以兼容Vim的插件都有,所有浏览器,所有编辑器都是Vim的操作方式,当然包括我现在书写的markdown的软件EME也是兼容的V ...

  8. 【基础篇】hexo博客搭建教程

    [基础篇]搭建hexo博客(一) 作者:Huanhao bilibili:Mrhuanhao 前言 你是否想拥有属于自己的博客?你是否无奈与自己不会写网站而烦恼? 不要担心,本系列教程将会实现你白嫖的 ...

  9. codeblocks升级c++17版本

    用了大半年的codeblocks,今天居然发现我还不会配置MINGW版本,现在C++已经更新到c++20了,而我还在用c++11,所以今天记录一下怎么更新c++版本吧. 其实步骤没有我们想象的那么困难 ...

  10. python库常用函数学习

    os.path #返回标准化的绝对路径,基本等同于normpath() os.path.abspath(path) #返回文件名 os.path.basename(path) #返回目录名 os.pa ...