简单模拟分页功能的实现

话不多说, 直接代码走起…

  // btnCount: 最多能看到几个分页按钮
  // total: 信息总条数
  // size: 每页几条信息
  // page: 当前第几页

  function f(total, size, page, btnCount = 5) {
    // 能看到的页码集合
    let arr = []

    // 根据总条数和每页几条得出总页数
    const pages = total / size

    // 生成总页数数组
    let pagesArr = []
    for (let i = pages; i > 0 && i <= pages; i--) {
      pagesArr.unshift(i)
    }

    // 判断分页首尾页码最小居中位置 向上取整
    const halfBtnCount = Math.ceil(btnCount / 2)

    if (page <= halfBtnCount) {
      // 如果所选页码在首位两端小于分页首页码最小居中位置 则从 总页数数组头部 截取 分页按钮个数 的数组
      arr = pagesArr.slice(0, btnCount)
    } else if (page >= pagesArr.length - halfBtnCount) {
      // 如果所选页码在首位两端大于分页首页码最小居中位置 则从总页数数组尾部截取 分页按钮个数 的数组
      arr = pagesArr.slice(-btnCount)
    } else {
      // 如所选页不在 总页数数组 的首位部分, 则按 分页按钮个数 截取 --注意截取的下标--
      arr = pagesArr.slice(page - halfBtnCount, page + halfBtnCount - 1)
    }
    return arr
  }

  // 在可能的情况下,让page处于正中间
  // f(100, 10, 1, 5) // ==> [1, 2, 3, 4, 5]
  // f(100, 10, 7, 5) // ==> [5, 6, 7, 8, 9]
  // f(100, 10, 2, 5) // ==> [1, 2, 3, 4, 5]
  // f(100, 10, 5, 5) // ==> [3, 4, 5, 6, 7]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过《操作系统》课程实训,达到以下目的:(1)巩固和加深对操作系统(OS)原理的理解,初步掌握操作系统组成模块和应用接口的使用方法,提高进行工程设计和系统分析的能力;(2)通过相关课题的设计,锻炼学生解决复杂工程问题的能力;(3)通过选做相关的课题,提高学生查阅资料、相互交流沟通的能力,锻炼学生使用信息化工具的能力; 请求页式管理是一种常用的虚拟存储管理技术。本设计通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。 (1)从置换算法中任选 2 种(OPT、 FIFO、LRU、Clock);(2)建立页表;(3) 设计的输入数据要能体现算法的思想(4) 模拟缺页中断过程;(5)求出各置换算法中的缺页次数和置换次数以及依次被换出的页号;(6)利用Java Swing进行图形化界面设计。 在此次实训过程中,我先是完成了FIFO、LRU、OPT、Clock四个算法的实现,之后结合Java的Swing图形化界面,将算法融入到图形化界面中,并且可以进行序列长度和运行时间的初始化,紧接着,可以将序列和物理块进行随机生成序列,最后,在算法执行中,可以将缺页中断过程显示在文本区域内,并且在文本区域内可以显示缺页次数、置换次数、被换页号的实时统计。
要使用jQuery实现分页功能,需要先获取到要分页的数据,然后根据每页显示的数量和总数据量计算出需要分成多少页。然后在页面上生成相应的分页导航,当用户点击不同的分页按钮时,再用jQuery动态地显示相应的数据。 以下是一个简单的示例代码: HTML部分: ``` <div id="data"></div> <div id="pagination"></div> ``` JS部分: ``` // 模拟数据 var data = []; for (var i = 1; i <= 50; i++) { data.push("数据" + i); } // 每页显示的数量 var pageSize = 10; // 总页数 var pageCount = Math.ceil(data.length / pageSize); // 显示数据的函数 function showData(pageIndex) { var html = ""; for (var i = (pageIndex - 1) * pageSize; i < pageIndex * pageSize && i < data.length; i++) { html += "<p>" + data[i] + "</p>"; } $("#data").html(html); } // 生成分页导航的函数 function generatePagination() { var html = ""; for (var i = 1; i <= pageCount; i++) { html += "<span data-page='" + i + "'>" + i + "</span>"; } $("#pagination").html(html); } // 默认显示第一页的数据 showData(1); // 生成分页导航 generatePagination(); // 点击分页导航时显示相应的数据 $("#pagination").on("click", "span", function() { var pageIndex = parseInt($(this).data("page")); showData(pageIndex); }); ``` 在上面的示例代码中,我们首先定义了一个模拟数据,然后根据每页显示的数量和总数据量计算出总页数。接着定义了两个函数,一个用于显示数据,一个用于生成分页导航。然后在页面加载完成后,先显示第一页的数据,再生成分页导航。最后监听分页导航的点击事件,在点击时根据点击的页码显示相应的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值