`

页码数量显示--简单算法

阅读更多

javaScript页码简单算法实现, 在此留作笔记, 供以后参考

/**
 * 页码计算, 仅适用于显示奇数数量的页码
 * @param size 页大小
 * @param index 当前页码
 * @param rowCount 总行数
 * @param numCount 要显示的页码数量
 * @returns {Object} pageTotal(总页数), minNum(最小页码), maxNum(最大页码)
 */
function pageCalc(size, index, rowCount, numCount, debug) {

	// 1. 得到总页数
	var pageTotal = parseInt((rowCount + size - 1) / size);

	// 2. 得到要显示页码数量的一半
	var offset = parseInt(numCount / 2);
 	/* 要计算偶数个数需重新计算 */
	// if (!(numCount % 2)) {
	// 	offset -= 1;
	// }

	// 3. 得到开始页码和结束页码
	var minNum = index - offset;
	var maxNum = index + offset;

	// debug
	if (debug) 	console.log({pageTotal:pageTotal, minNum:minNum, maxNum:maxNum});

	// 修复较小的页码
	// 4. 修复结束页码
	if (minNum < 1) {
		var tmp = 0 - minNum + 1 + maxNum;
		minNum = 1;
		maxNum = (tmp > pageTotal ? pageTotal : tmp);
	}

	// 5. 修复开始页码
	if (maxNum > pageTotal) {
		var tmp = maxNum - pageTotal;
		maxNum = pageTotal;
		minNum = minNum - tmp;
		if (minNum < 1) {
			minNum = 1;
		}
	}

	return {
		pageTotal : pageTotal,
		minNum : minNum,
		maxNum : maxNum
	};
}
分享到:
评论

相关推荐

    页面置换算法模拟-OPT、FIFO及LRU算法.docx

    FIFO算法实现简单,但可能会导致Belady异常,即增加物理内存块的数量反而增加了缺页次数。 **LRU(近来最久未使用)算法**是一种更为智能的策略。它基于“最近被使用的页面在近期可能还会被使用”的假设,每次需要...

    FIFO && LRU 页面置换算法

    在操作系统中,内存管理是核心任务之一,而页面置换算法是内存管理中的关键部分,用于处理虚拟内存系统中的页面故障。本项目将深入探讨两种重要的页面置换算法:FIFO(先进先出)和LRU(最近最久未使用)。通过使用...

    操作系统页面置换LRU,FIFO,OPT算法实现代码(C#)

    项目还支持动态显示,用户可以直观地看到页面替换的过程,这对于理解这些算法的工作机制非常有帮助。同时,可以设置页面数量和驻留集大小,模拟不同内存条件下的行为。自动生成的十六进制地址码和分析的页号有助于...

    动态分页算法java代码

    2. 动态分页:动态分页是根据用户请求的页码和每页数量来实时计算和返回数据,而不是一次性加载所有数据。这样可以优化内存使用,避免一次性加载过多数据导致性能问题。 二、动态分页的实现原理 1. 计算总页数:...

    jsp分页技术算法jsp分页技术算法

    **jsp分页技术算法详解** 在Web开发中,分页技术是必不可少的,尤其是在处理大量数据展示时。JSP(JavaServer Pages)作为Java的一种视图技术,提供了强大的功能来实现用户界面的动态生成。本篇文章将深入探讨JSP中...

    java分页int pageSize:每页显示多少条记录

    根据给定的信息,本文将详细解释Java中实现...以上代码展示了如何设置每页显示的记录数量、获取当前页码、计算总页数、执行分页查询以及展示查询结果。此外,还实现了简单的分页导航功能,允许用户在不同页面间切换。

    用JSP进行数据分页显示的一个实现.rar_java 分页_java 分页显示_jsp 显示数据_jsp数据分页_分页显示

    - **每页数据量**:一次加载并显示的数据记录数量。 - **跳转链接**:提供给用户切换不同页面的链接,如“上一页”、“下一页”和页码选择。 2. **实现步骤** - **计算总页数**:在后台计算数据总数,并根据每页...

    文件分页显示程序+报告

    - **用户交互**:创建简单的用户接口,允许用户输入页码或发出翻页请求。 4. **报告**:课程设计的报告通常包含以下部分: - **项目概述**:介绍项目的目标、背景和所使用的技术。 - **设计思路**:阐述实现...

    airbnb 软件工程师面试题

    - 页面跳转功能,允许用户直接输入页码进行跳转。 #### Calculator(计算器) - **功能描述**:实现基本的算术运算,如加减乘除。 - **技术细节**: - 解析输入的表达式,识别数字和运算符。 - 使用栈结构处理...

    php 3行代码的分页算法(求起始页和结束页)

    算法简单. 下面的算法具有前面1和3两个优点. 复制代码 代码如下: // $curr_index, 当前页码. // $link_count, 链接数量. // $page_count, 当前的数据的总页数. // $start, 显示时的起始页码. // $end, 显示时的终止...

    數據庫分頁控件

    - 可以添加“显示条数选择”,让用户自定义每页显示的数量。 - 避免显示过多的页码,可以使用省略号表示中间页码,保持界面简洁。 6. 扩展性: - 结合AJAX实现无刷新分页,提升用户体验。 - 考虑移动设备,调整...

    图形点阵LCD显示控制研究.docx-教程与笔记习题

    LCD显示技术在电子通信和智能产品设计中广泛应用,无论是简单的数字显示还是复杂的图形显示,都依赖于有效的控制算法。本教程主要涵盖了点阵LCD的接口技术和显示控制技术。 1. **点阵式LCD的接口技术** 点阵式LCD...

    海量数据库的查询优化及分页算法方案2.doc

    在这个例子中,`PageNum`是当前页码,`PageSize`是每页显示的记录数。`ROW_NUMBER()`函数为每一行分配一个唯一的行号,然后通过`BETWEEN`操作符筛选出特定范围的行,从而实现分页。 然而,传统的分页方式在处理大...

    多种JS用户分页代码

    - **页码范围控制**:展示一定数量的页码链接,如“1...5 6 7...10”,以减少页面拥挤感。 4. **事件监听与处理** - **点击事件**:监听页码按钮和翻页按钮的点击,根据点击的页码更新内容。 - **URL参数处理**...

    JS实现的分页

    - **动态生成页码**:通常会显示5个左右的页码,如果总页数太多,可以采用省略号表示中间页码,确保关键页码如第一页、最后一页始终可见。 4. **优化与扩展** - **缓存策略**:预加载相邻页的数据,提高用户体验...

    2021-2022计算机二级等级考试试题及答案No.18792.docx

    - 这个概念用于衡量算法所需临时空间的大小,而不是算法本身的代码长度或指令数量。 - 题目描述中的“正确答案”是正确的。 #### 19. 引用数组元素的正确方式 - **知识点**: C语言中引用数组元素的方法。 - **...

    仿淘宝分页按钮效果简单美观易实用当分页JS控件

    算法设计的目标是根据当前数据量和每页显示的数据数量,生成正确的页码序列,同时考虑特殊情况,如首页、末页、上一页、下一页的逻辑处理。基本的分页算法通常包括以下步骤:1) 计算总页数,这涉及到数据总数和每页...

    golang实现分页算法实例代码

    最后,`Paginator`函数将结果封装成一个映射(map),键值对包括`pages`(显示的页码数组)、`totalpages`(总页数)、`firstpage`(前一页)、`lastpage`(后一页)和`currpage`(当前页),并返回这个映射。...

    2021-2022计算机二级等级考试试题及答案No.1463.docx

    - **解释**:状态栏中显示的信息包括当前文档的页码、总页数等,但不会显示文档的作者信息。 - **应用场景**:熟悉 Word 2003 的基本操作有助于高效地编辑文档。 ### 12. MySQL 触发器 - **知识点**:MySQL 中的...

    操作系统存储器管理实验报告

    - **FIFO算法**:这是一种简单的页面置换策略,当发生缺页时,选择最早进入内存的页面进行替换,即最久未使用的页面。然而,FIFO可能会导致Belady异常,即增加分配的物理页面数量反而导致更多的缺页中断。 - **LRU...

Global site tag (gtag.js) - Google Analytics