ajax js分页算法分析
显示效果:
[页面总数小于等于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分页算法分析的更多相关文章
- jQuery+AJAX实现纯js分页功能
使用jQuery的AJAX技术,在bootstrap的框架下搭建的纯js分页 bootstrap作为Twitter推的一款前端框架,效果个人还是觉得很不错的.这次只是拿来作为网页元素的css样式表使用 ...
- Ajax做分页
Ajax做分页 用这种ajax做分页的方法比较简单,把代码直接复制就可以,然后根据实际更改一下里面的参数. .设置分页显示显示的样式,显示效果如下. 复制代码 <style type=" ...
- 5.Hibernate实现全套增删改查和ajax异步分页
1.1 创建如下oracle数据库脚本 drop sequence seq_stu; create sequence SEQ_STU minvalue maxvalue start increment ...
- 浅谈js分页的几种方法
一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...
- JS分页条插件
目标 制作js分页导航jq插件,用于无刷新分页或者刷新分页 实现目标参考京东和天猫的分页条. 有四个固定按钮,前页码,后页码,首页,末页. 程序关键点在于计算中间页面的起止位置.逻辑是以当前页码为参照 ...
- PHP中使用jQuery+Ajax实现分页查询多功能操作
1.首先做主页面Ajax_pag.php 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UT ...
- ajax+js数据模板+后台
.net 后台,ajax+js模板引擎的数据填充,制作无刷新分页 js模板用laytpl 待续...
- 非常不错的一个JS分页效果代码
这里分享一个不错的js分页代码. 代码中cpage是页面计数,应为全局变量,可以随处调用它: totalpage是总页数. 与asp分页代码很类似,也是先取得记录总数,然后实现分页,基本的分页思路与原 ...
- django基础之Ajax、分页、cookie与session
目录: Ajax之json Ajax简介 jquery实现的ajax js实现的ajax django分页器 COOKIE与SESSION 一.Ajax之json 1.什么是json? 定义: JSO ...
随机推荐
- JSP_EL的回顾
在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standa ...
- linux服务器项目部署
重启服务器 :reboot C:\Users\maple>mysql -u root -pEnter password: ******mysql> use test;Database ch ...
- java连接sqlserver数据简单操作
首先我们下载微软的JDBC驱动包 https://www.microsoft.com/en-us/download/details.aspx?id=11774 下载好后我们打开如下图 点击Unzip ...
- Luogu_1280_尼克的任务
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- 中国的规模优势,有望帮助AI芯片后来者居上?
芯片一直是个神奇的东西,表面上看是电脑.笔记本.智能手机改变了世界,其实,真正改变世界的硬件内核是芯片,芯片相关的技术才是科技界最实用.最浪漫的基础技术,也正因如此,谁掌握了芯片基础技术,谁就能立于 ...
- 如何正确的hook方法objc_msgSend · jmpews
如何正确的hook方法objc_msgSend 前言 如果希望对 Objective-C 的方法调用进行 log, 一个很好的解决方法就是 hook 方法 objc_msgSend, 当然想到的就是利 ...
- 深度学习论文笔记:Fast R-CNN
知识点 mAP:detection quality. Abstract 本文提出一种基于快速区域的卷积网络方法(快速R-CNN)用于对象检测. 快速R-CNN采用多项创新技术来提高训练和测试速度,同时 ...
- 一文搞懂jvm内存结构
一.jvm是干什么的? 大家都知道java是跨平台语言,一次编译可以在不同操作系统上运行,怎么做到的呢,看下图: javac把写的源代码(java文件),编译成字节码(class文件),字节码部署到l ...
- python settings 中通过字符串导入模块
1. 项目文件结构 set_test ├─ main.py # 入口函数 │ ├─notify # 自定义的模块 │ ├─ email.py # 自定义模块 │ ├─ msg.py # 自定义模块 │ ...
- win10 pycharm快捷键
编辑: 1.复制(行) ctrl + D (光标与需要复制的代码同行) 2.删除(行) ctrl + Y(光标与需要删除的代码同行) 3.光标换行 Shift + Enter(不管光标在该行的哪个位置 ...