`
孔雀王子
  • 浏览: 42010 次
  • 性别: Icon_minigender_1
  • 来自: 河北
文章分类
社区版块
存档分类
最新评论

Google分页技术

阅读更多

分页技术在Web应用中是必不可少的,同时它也是面试必考的一道题目。因此,对于程序员来说分页技术尤为显得重要。下面我们就分析一下Google的分页技术。

Google分页的索引值计算方法

分析:以下是以显示6个页为参考(Google与百度均是20页)

    1 2 3             当前页是1     1 2 3

    1 2 3 4           当前页是2     起始值1     未页 4

    1 2 3 4 5         当前页是3     起始值1     未页 5

    1 2 3 4 5 6       当前页是4     起始值1     未页 6

从以上得知:当前页小于等于4(nowPage),起始页为1(startIndex), 末页(endIndex)=当前页(nowPage)+2

startIndex=1;

endIndex=nowpage+2;

注意:如果求和值后的endIndex 如果endIndex大于总页数,那么this.endIndex=this.countPage;

java的实现代码如下:

    if (this.nowPage <= 4) {  //判断小于等于4的情况

       this.startIndex = 1;

       this.endIndex = this.nowPage + 2;

       if(this.endIndex>this.countPage){

       this.endindex=this.countpage;

       }

    }

   当大于4

    2 3 4 5 6 7         当前页是5    起始值是2    未页 7

    3 4 5 6 7 8          当前页是6    起始值是3    未页 8

    4 5 6 7 8 9         当前页是7    起始值是4    未页 9

    5 6 7 8 9 10         当前页是8    起始值是5    未页 10

   从上图得知 当前页大于4时:

   1、当前页与尾页的差少于2,开始页与当前页差3

        endindex=nowpage+2;

        startindex=nowapge-3; 

   注意:求和值后的endindex,如果endindex大于总页数

        this.endindex=this.countpage;

        this.startindex=this.countpage-5;

   Java实现代码如下:

       if(this.nowpage>4){ //大于4的情况

            this.startindex=this.nowpage-3;

            this.endindex=this.nowpage+2;

       if(this.endindex>this.countpage){

           this.endindex=this.countpage;

           this.startindex=this.countpage-5;

       }

    }

    整合后的代码如下:

        // 计算索引位置

       if (this.nowpage <= 4) {  //判断小于等于4的情况

           this.startindex = 1;

           this.endindex = this.nowpage + 2;

           if(this.endindex>this.countpage){

              this.endindex=this.countpage;

           }

       }else if(this.nowpage>4){ //大于4的情况

           this.startindex=this.nowpage-3;

           this.endindex=this.nowpage+2;

           if(this.endindex>this.countpage){

               if(this.endindex>sumindex){

              this.endindex=this.countpage;

              this.startindex=this.countpage-5;

               else{

              this.startindex=1;

              this.endindex=this.countpage;

               }

           }

       }

下面我们将它封装在一个Java类中,为以后的使用提供便利,最重要的是它具有通用性。完整的代码如下:

package cn.csdn.util;
import java.util.List;
public class Pagination<T> {
	private int nowPage; // 当前页
	private int totalPage;
	private int totalRecord;
	public static final int PAGESIZE = 8;
	private final int SHOWPAGE = 6;
	private int startPage;
	private int endPage;
	private List<T> entity;
	public Pagination() {
		// TODO Auto-generated constructor stub
	}
	public Pagination(int nowPage, int totalRecord) {
		this.nowPage = nowPage;
		this.totalRecord = totalRecord;
		this.totalPage = this.totalRecord % this.PAGESIZE == 0 ? this.totalRecord
				/ this.PAGESIZE
				: this.totalRecord / this.PAGESIZE + 1;
		// 总页数是否小于4
		if (this.totalPage < (this.SHOWPAGE / 2 + 1)) {
			this.startPage = 1;
			this.endPage = this.totalPage;
		} else {
			// 总页数大于4的情况
			// 当前页的值是否小于等于4
			if (this.nowPage <= (this.SHOWPAGE / 2 + 1)) {
				this.startPage = 1;
				this.endPage = this.nowPage + 2;
				if (this.endPage >= this.totalPage) {
					this.endPage = this.totalPage;
				}
			} else {
				this.startPage = this.nowPage - 3;
				this.endPage = this.nowPage + 2;
				if (this.endPage >= this.totalPage) {
					this.endPage = this.totalPage;
					if (this.totalPage < 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 getTotalPage() {
		return totalPage;
	}
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	public int getTotalRecord() {
		return totalRecord;
	}
	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}
	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> getEntity() {
		return entity;
	}
	public void setEntity(List<T> entity) {
		this.entity = entity;
	}
}

 

看到这相信你对分页技术一定更为熟识,使用起来也更加的得心应手。只要创建Pagination的对象即可把它应用到你的项目中去。最后要感谢CSDN陈红军老师的指导。

0
1
分享到:
评论

相关推荐

    仿百度分页代码 谷歌分页代码

    标题与描述中的“仿百度分页代码 谷歌分页代码”主要涉及的是网站开发中常见的分页功能实现。在大数据量的处理场景下,为了提升用户体验和服务器性能,分页显示数据成为了一种常见且必要的技术手段。本文将详细解析...

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    通过学习和研究这些示例,你可以更好地理解和应用这些分页技术到自己的项目中。 总的来说,这个压缩包为你提供了一个全面的PHP分页解决方案集合,涵盖了从基础到高级,从静态到动态的各种场景,是提升项目质量的...

    仿google分页效果

    在本项目中,我们主要探讨的是如何实现"仿Google分页效果",并结合了表格隔行变色的视觉优化。这个项目的核心在于利用Ajax技术动态加载数据,以模拟Google搜索结果页面的分页功能,同时对展示数据的表格进行美化,...

    asp 数字分页 仿百度分页 仿谷歌分页

    "asp 数字分页 仿百度分页 仿谷歌分页"这个项目的目标是实现一个与百度和谷歌分页样式类似的分页功能,同时具备数据库连接能力。 首先,我们来看`index.asp`,这是网站的主入口文件,通常包含了整个应用的逻辑控制...

    mySql与oracle分页技术

    在数据库管理中,分页技术是一项非常重要的功能,它允许用户以较小的数据量逐步加载大量数据,从而提高网页或应用程序的响应速度和用户体验。本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 ...

    极限超强百度,谷歌分页方法

    这个主题,"极限超强百度,谷歌分页方法",涉及到如何高效地处理大量数据并提供用户友好的分页体验。下面将详细介绍这一领域的关键知识点。 首先,分页的目的是为了提高网页加载速度和用户体验。当搜索引擎返回...

    仿google分页,ajax无刷新技术,附数据库

    总的来说,"仿Google分页"结合AJAX无刷新技术,为用户带来了流畅的浏览体验,同时也降低了服务器的压力。通过合理的数据库设计和后端处理,可以实现快速且有效的数据分页。在实际项目中,开发者还应注意安全性、兼容...

    google分页

    在互联网上,搜索结果往往非常庞大,为了便于用户浏览,搜索引擎如Google采用了分页技术来显示搜索结果。本文将深入探讨“Google分页”这一概念,以及与之相关的知识点。 Google分页是Google搜索引擎的一种展示机制...

    基于spring3注解的google分页

    首先,理解Google分页的基本概念是至关重要的。它通常包含当前页数、每页显示的记录数以及前进和后退按钮,以便用户能够轻松浏览大量数据。在Spring MVC中,我们可以使用`@RequestMapping`注解来处理HTTP请求,并...

    JSP实现百度谷歌分页页码功能源代码

    本示例聚焦于使用JSP(Java Server Pages)来实现类似百度和谷歌的分页功能。下面将详细解释如何通过JSP来创建这种功能,以及涉及到的关键知识点。 首先,我们要理解JSP的基础。JSP是一种基于Java的服务器端脚本...

    查询条件保存及google分页

    总结来说,"查询条件保存及Google分页"是一项重要的用户体验优化技术,它涉及到前后端的协作,包括保存用户查询状态、实现动态加载和分页导航。理解并掌握这部分知识,对提升Web应用的性能和用户体验大有裨益。

    类似google的分页

    在IT行业中,分页是一种常见的数据展示方式,特别是在网页应用中,当数据量过大时,为了提高用户体验,避免一次性加载所有数据导致页面响应慢或内存消耗过大,分页技术应运而生。"类似Google的分页"是这种技术的一个...

    php仿谷歌百度分页源代码

    此外,加入作者提供的QQ群和群号,可以与其他开发者进行技术交流,解决在使用过程中遇到的问题,或者获取更多关于分页和PHP开发的实用技巧。 总之,这个源代码提供了一个基本的PHP分页实现,对于初学者来说是一个很...

    一个分页page技术

    接下来,我们将深入讨论分页技术的关键知识点: 1. **分页组件**:前端通常会有一个分页组件,包括页码按钮、每页条数选择、前进/后退箭头等。这些组件需要与后端进行交互,获取相应的数据。 2. **请求参数**:在...

    含分页核心源代码 struts2.1 + hibernate3.3 +spring2.5 + 仿Google数字分页

    在这个项目中,开发者利用这些技术来构建一个具有高效分页能力的Web应用,以提高用户体验并优化数据库查询性能。 **Struts2** 是一个强大的MVC(Model-View-Controller)框架,它提供了丰富的动作调度、拦截器、...

    JSP实现类似百度,google的分页

    在这个主题中,我们将深入探讨如何使用Java Server Pages(JSP)技术来实现类似百度或Google的高效、美观的分页功能。这通常涉及到与后端Servlet的交互,以获取并展示所需的数据。 首先,我们需要了解JSP的基本原理...

    java仿GOOGLE数字分页

    "java仿GOOGLE数字分页"是针对Java后端开发的一种技术实现,旨在模仿谷歌搜索引擎的分页样式,提供用户友好的分页体验。在这个项目中,开发者不仅关注功能实现,还注重了界面的美观性和用户体验。 首先,我们要理解...

    不错的Java经典分页

    本知识点主要聚焦于Java实现的经典分页技术,结合"不错的Java经典分页"这个主题,我们将深入探讨如何在Java中创建高效的、用户体验良好的分页功能。 首先,"仿谷歌分页"和"放百度分页"这两个标签暗示了我们可能会...

    pager-taglib实现Google分页

    在Java Web开发中,分页是一种常见的功能,用于在大量数据中进行导航,提高用户体验。本主题将深入探讨如何利用pager-taglib库实现...通过理解和实践这些知识点,你能够更好地掌握Java Web分页技术,提升你的开发技能。

    类似google的分页控件

    "类似google的分页控件"通常指的是采用简洁、高效的分页设计,以提供良好的用户体验。Google的分页样式已经成为了一种典范,以其清晰、直观的设计被广泛应用。 分页控件的主要功能是将大量数据分割成可管理的小部分...

Global site tag (gtag.js) - Google Analytics