- 浏览: 400047 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
qiuqinjun:
你好,项目的文献能否打包学习下呢
java定时任务管理实现 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
使用jQuery Autocomplete(自动完成)插件 -
CommonAccount:
我的showModalDialog() 传对象参数,在子窗口用 ...
JS中showModalDialog (模态窗口)详细使用 -
wyfn18:
very good
使用jQuery Autocomplete(自动完成)插件 -
jiangqingtian:
xiexie
使用jQuery Autocomplete(自动完成)插件
仿Baidu,Google查询分页技术实现分析
分页 (pagination) 一种自动分页机制,可以将移动 Web 窗体中的内容分割成一组组较小的页进行呈现,以适合于特定的设备。该机制还呈现可用于浏览到其他页的用户界面元素.在整个的web开发应用中分页是必会的知识点。应该熟练掌握与运用。在实际开发的应用中,分页显的尤为重要,现将baidu,google查询分页显示的页面及分页效果分析如下:1、baidu搜索观察分页效果如下:2、Google搜索分页效果实现如下:分析流程结构:
页面显示的页码 | 当前页 | 末页 | 分析 |
1 2 3 4 5 6 7 8 9 10 下一页 | 1 | 10 | 10=1+9 |
分析1:当总页数小于11时,
页面索引起始值=1;
页面索引最终值=总页数;
|
|||
上一页 1 2 3 4 5 6 7 8 9 10 11 下一页 | 2 | 11 | 11=2+9 |
上一页 1 2 3 … … 9 10 11 12 下一页 | 3 | 12 | 12=3+9 |
上一页 1 2 3 … …10 11 12 13 下一页 | 4 | 13 | 13=4+9 |
上一页 1 2 3 … …11 12 13 14 下一页 | 5 | 14 | 14=5+9 |
上一页 1 2 3 … …12 13 14 15 下一页 | 6 | 15 | 15=6+9 |
上一页 1 2 3 … …13 14 15 16 下一页 | 7 | 16 | 16=7+9 |
上一页 1 2 3 … …16 17 18 20 下一页 | 11 | 20 | 20=11+9 |
注意观察 | |||
上一页 2 3 4 … …18 29 20 21 下一页 | 12 | 21 | 2=12-10 21=12+9 |
上一页 3 4 5 … …19 20 21 22 下一页 | 13 | 22 | 3=13-10 22=13+9 |
上一页 4 5 6 … … 20 21 22 23 下一页 | 14 | 23 | 4=14-10 23=13+9 |
分析2:当总页数大于11页面上显示的总共页码为20,其中以上观察可知:
页面索引起始值=当前页-10;
页面索引最终值=当前页+9;
注意:当页面的索引最终值大于查询的总页数时,那么效果应该如下:
页面索引最终值=查询的总页数;
页面索引起始值=查询的总页数-19;
|
上面做了简单的分析与算法,那你是否能够用Java代码实现呢?
下面用java实现:
package cn.csdn.util; import java.util.List; /** * * @author redarmy_chen * * @param <T> */ public class Pagination<T> { // 分页信息 private int nowpage;// 当前页 private int countrecord;// 总记录 private int countpage;// 总页数 public static final int PAGESIZE = 5;// 每页显示的记录数 private int startpage;// 页面中的起始页 private int endpage;// 页面中的结束页 private final int SHOWPAGE = 6;// 页面中显示的总页数 baidu,google显示的总页数是20 // 在测试我们才用6来测试 private List<T> allentities; private String url; /** 根据当前页及总记录数来构造分页对象 */ public Pagination(int nowpage, int countrecord) { this.nowpage = nowpage; this.countrecord = countrecord; /** 计算总页数 */ this.countpage = this.countrecord % this.PAGESIZE == 0 ? this.countrecord / this.PAGESIZE : this.countrecord / this.PAGESIZE + 1; /** 计算startpage与endpage的值 */ /** 总页数数是否小于4 */ if (this.countpage < (this.SHOWPAGE / 2 + 1)) { this.startpage = 1; // 页面中起始页就是1 this.endpage = this.countpage;// 页面中的最终页就是总页数 } else { /** else中是总页数大于4的情况 */ /** 首先当前页的值是否小于等于4 */ if (this.nowpage <= (this.SHOWPAGE / 2 + 1)) { this.startpage = 1; this.endpage = this.nowpage + 2; /** 判断页面的最终页是否大于总页数 */ if (this.endpage >= this.countpage) { this.endpage = this.countpage; } } else { this.startpage = this.nowpage - 3; this.endpage = this.nowpage + 2; if (this.endpage >= this.countpage) { this.endpage = this.countpage; if (this.countpage < this.SHOWPAGE) { this.startpage = 1; } else { this.startpage = this.endpage - 5; } } } } } public int getNowpage() { return nowpage; } public void setNowpage(int nowpage) { this.nowpage = nowpage; } public int getCountrecord() { return countrecord; } public void setCountrecord(int countrecord) { this.countrecord = countrecord; } public int getCountpage() { return countpage; } public void setCountpage(int countpage) { this.countpage = countpage; } public int getStartpage() { return startpage; } public void setStartpage(int startpage) { this.startpage = startpage; } public int getEndpage() { return endpage; } public void setEndpage(int endpage) { this.endpage = endpage; } public List<T> getAllentities() { return allentities; } public void setAllentities(List<T> allentities) { this.allentities = allentities; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } }
以上内容归redarmy_chen原创,版权归redarmy_chen所有不得随意转载 如有问题请发送邮件到redarmy_chen@qq.com
发表评论
-
Ajax Session Timeout处理
2014-07-01 09:57 9323对于session过期跳转的问题,很简单,就是一个过滤器,然 ... -
20非常有用的Java程序片段
2014-01-13 21:54 0下面是20个非常有用的Java程序片段,希望能对你有用。 ... -
20个非常有用的Java程序片段
2014-01-13 21:49 0下面是20个非常有用的Java程序片段,希望能对你有用。 ... -
Spring MVC实现一个控制器写多个方法
2014-01-15 21:12 1973Spring MVC的API: DispatcherSe ... -
使用Eclipse构建Maven的SpringMVC项目
2013-06-21 12:53 1134使用Eclipse构建Maven的SpringMVC项目 ... -
发送Email的实现
2013-06-20 14:37 0package com.huawei.common.emai ... -
dbcp连接操优化
2013-06-02 12:35 0在做struts2、spring网站时,在系统闲置一段时间后, ... -
spring的taskExecutor线程池实现邮件发送
2013-04-26 11:18 0由于项目里涉及到上万人邮件处理,需要用到线程池来提高处理速度 ... -
Java操作json的通用类
2013-04-18 11:05 8571提供一个Java中操作JSON格式的公共类: JS ... -
Java写的数据库连接池
2013-03-03 02:04 1362非常不错的手写的数据库连接池: import j ... -
一个非空校验的Java类
2012-11-28 21:41 0/* * 文件名:DataChecker.java * ... -
由12306.cn谈谈网站性能技术
2012-09-21 00:13 95812306.cn网站挂了,被 ... -
Hadoop(quick start)快速入门
2012-09-01 00:27 1529Hadoop(quick start)快速入门 ... -
api接口简明,比Apache Common File Upload速度快、稳定性高,无需任何第三方库的上传组建
2012-08-21 23:59 2272fastupload根据RFC 1867文档规范,编写的基于表 ... -
Struts2 json ajax动态显示列表
2012-08-08 00:51 3229关于在Struts2中结合json使用ajax进行动态无 ... -
jvm参数相关
2012-08-02 13:47 1128Eclipse文件夹下有个eclips ... -
定时任务
2012-07-14 13:55 0ScheduleIterator.java import ... -
java定时任务管理实现
2012-07-14 13:48 15208代码清单: ===================== ... -
java定时任务管理
2012-07-14 13:25 30324Quartz Scheduler,定时任务 ... -
List排序的问题
2012-06-25 12:59 10601.对List进行排序可以通过这种方式,实现(implemen ...
相关推荐
主要包含ajax分页技术,还有类似google的分页,非常实用。
阳光宝盒是一款浏览器插件工具,它从多个方面增强上网体验,包括只看楼主、快乐分享、热门网址、实用工具。...阳光宝盒通过社区,门户,官方讨论群为用户提供技术支持,这也是它超越其它类似工具的地方。
增加分页模块。修改样式基于Google Material Design-Bootstrap 权限和用户管理。注册登录。只能修改和删除自己Notes。 MarkDown和Sublime样式。支持MarkDown格式Notes。调整src样式类似sublime。 查询。按Tags查询...
技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...
EnableQ提供最为便捷的问卷设计界面,它利用最新的“在地编辑(Edit_In_Place)”技术允许您在预览“设计”状态的问卷时可以直接在问卷页面上编辑问卷题目与选项文字,并结合特有的右键快捷菜单让您的问卷设计工作如同...
增加 充值卡功能(网站拥有者可以直接印刷实体卡销售,类似电话卡充值销售) 增加 纯静态生成功能(文章,商品列表,商品详情,地区,品牌),帮助中心,文章中心,地区可单独分配域名使用 增加 订单出货清单 增加 恢复系统...
19、独创标签AJAX输出,采用无刷新ajax分页技术,不仅栏目生成速度大大提高,还有效的防止列表被采集,标签可支持ajax->table,ajax->div+css,table,div+css四种调用方式,独创标签导入导出功能,让您更方便标签的...
与关系数据查询、多维数据库查询和基于XML的XQuery、XPath不同,全文检索技术主要处理对象是基于超大 数据量的文本数据和结构化的二进制数据上类似LIKE的模糊查询。主要区别见下表。 表1:全文检索与关系数据库...
第21章 流行技术:DOM和userData的应用技巧 21.1 使用userData保存文本内容 21.2 使用userData保存select标记 21.3 使用userData保存checkbox标记 21.4 使用DOM实现控件的替换 21.5 使用DOM实现控件的复制 21.6 使用...
第21章 流行技术:DOM和userData的应用技巧 21.1 使用userData保存文本内容 21.2 使用userData保存select标记 21.3 使用userData保存checkbox标记 21.4 使用DOM实现控件的替换 21.5 使用DOM实现控件的复制 21.6 使用...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...
GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...