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 ...
随机推荐
- c++ 如何清除上一次的输出?
#include <iostream.h>#include <stdlib.h>int main(){cout<<"PBY PBY PBY PBY PBY ...
- setContext or setCharacterEncoding
request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值response.setContentType("text/html;char ...
- 关于HTTP协议与HTTP状态码的简要介绍
在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...
- jQuery 源码学习 - 02 - jQuery.fn.extend 与 jQuery.extend
参考资料:[深入浅出jQuery]源码浅析--整体架构,备用地址:chokcoco/jQuery-. extend 方法在 jQuery 中是一个很重要的方法.jQuery 内部用它来拓展静态方法或者 ...
- mac 下openOffice服务的安装
1.安装准备 安装 Homebrew 及 Homebrew-Cask Homebrew 是一个Mac上的包管理工具.使用Homebrew可以很轻松的安装缺少的依赖. Homebrew-Cask是建立在 ...
- CSAPC08台湾邀请赛_T1_skyline
题目链接:CSAPC08台湾邀请赛_T1_skyline 题目描述 一座山的山稜线由许多片段的45度斜坡构成,每一个片段不是上坡就是下坡. / / * / / * / // / // / 在我 ...
- 两步解决maven plugins 插件下载慢 !下载报红的问题!
两步解决maven plugins 插件下载慢 !下载报红的问题! 1.找到你解压的maven安装路径下的conf 编辑settings 2.添加如下 使用阿里的 <mirror> ...
- 文本快速分类利器fasttext使用心得(踩坑之路)
fasttext是文本分类的一大利器,优点:快,嗷嗷快:缺点:暂未发现.但是我在使用其做文本分类时候还是遇到了挺多坑,今天先总结一个: 网上有人说设置训练参数的时候,ngrams设置大于2可以提高模型 ...
- 831. KMP字符串
给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字. 模板串P在模式串S中多次作为子串出现. 求出模板串P在模式串S中所有出现的位置的起始下标. 输入格式 第一行输入整 ...
- IDEA 详细使用教程
第一步:安装 略 安装首先需要Java语言的运行环境,这里不做概述. 第二步:破解 这里使用的是2016版的,所以直接在网上搜索秘钥即可 https://blog.csdn.net/ksksjipen ...