前端数据分页——table表数据分页方法(1)

article/2025/9/18 1:51:19

我们在页面展示一个table表格的时候,当数据量较大时,常常会考虑到数据分页的问题,数据分页一般有三种方式,分别是前端数据分页,后端数据分页,数据库分页。

前端数据分页:是把所有数据加载到前端,然后在前端用js实现数据的分页,这种分页方式是最方便简单的,但是也是效果最差的。因为当数据量很大时,前端加载数据耗时很久,页面会因为加载数据而无法正常显示,体验很差。并且因为数据是一次性加载到前端,当数据库有新数据更新时,如果不刷新页面重新读取数据库,就无法获取最新数据。

后端数据分页:是在后端将数据全部查出来,,将前端需要显示的部分数据筛选出来,传回前端。这种方式相对于前端数据分页来说效果要好很多。前端只用回传当前页要显示的少量数据,前端接收到的数据量也很少,传输负担就会小很多,可以减轻页面加载延迟。后端数据分页的缺点和前端刷新一样,如果想获取新数据,就要重新从数据库中加载所有数据到后端。

数据库分页:数据库分页是最好的分页方式,在后端拼接查询sql的时候,就把前端需要展示部分的数据条件拼接出来。每次都重新查询数据库,可以获取到最新数据,每次从数据库查询的数据量,只有前端当前要显示的那一部分,大大减少了数据的传输,缺点是sql的拼接比较复杂。

作者对三种分页方式都进行了总结,分为三篇文章。本文为前端数据分页方法。

一、第一次刷新页面逻辑

首先第一次刷新页面时,固定显示第一页数据,当数据超过一页时,按照每页最大条数正常显示,当数据不足一页时,显示所有数据。其中everypage是用来控制每页最大显示条数的

/** ajax刷新数据 **/function Refresh() {//获取筛选条件var taskid = $("#taskId").val();//每页显示条数var everypage = @ViewData["PageShowNum"];$.ajax({type: "GET",url: "/Task/Refresh",data: { "taskid": taskid },dataType: "text",success: function (data) {if (data == "") {$("#alert").html("数据刷新异常");} else {var str = "";var newdata = JSON.parse(data);//数据量大于一页时分页if (newdata.dataInfo.length != 0 && newdata.dataInfo.length >= everypage) {for (var i = 0; i < everypage; i++) {str += "<tr><td>" + newdata.dataInfo[i].recordTime +"</td><td>" + newdata.dataInfo[i].userName +"</td><td>" + newdata.dataInfo[i].taskID +newdata.dataInfo[i].info + "</td></tr>";}}//数据量小于一页时,直接显示else if (newdata.dataInfo.length != 0 && newdata.dataInfo.length < everypage) {for (var i = 0; i < newdata.dataInfo.length; i++) {str += "<tr><td>" + newdata.dataInfo[i].recordTime +"</td><td>" + newdata.dataInfo[i].userName +"</td><td>" + newdata.dataInfo[i].taskID +newdata.dataInfo[i].info + "</td></tr>";}}$("#tableText").html(str);//总页数var pagenum = Math.ceil(newdata.dataInfo.length / everypage);ShowPageFloot("1", @ViewData["AllPageNum"]);}}});return true;}

二、页面跳转功能

我们再做一个用于点击跳转页面的页脚样式

/** 显示页面跳转功能 **/function ShowPageFloot(getpageclick, pagenum) {var pagehtml = "当前第 " + getpageclick + " 页,共 <span id = \"lastpagenum\">" + pagenum + "</span> 页," +"<input type=\"text\" id=\"pageclick\" style=\"width: 30px; margin - right: 5px;\" name=\"pageclick\"/>" +"&nbsp;&nbsp;<input type=\"submit\" id =\"jumppage\" onclick=\"Jump()\" value=\"跳转\" /> <input type=\"hidden\" id=\"hidpagenum\" value=\"" + pagenum +"\">";$("#page").html(pagehtml);}

生成的样式如下:

三、前端数据分页逻辑

在跳转功能的input框中输入要跳转的页面数字,点击跳转,跳转到指定页面,页面跳转部分js代码如下,在执行完跳转之后,记得调用跳转页面的页脚样式,从新刷新页脚数据:

/** 触发页面跳转 **/function Jump() {//每页显示条数var everypage = @ViewData["PageShowNum"];//计算数据分页总页数,向上取整var pagenum = Math.ceil(newdata.dataInfo.length / everypage);//获取输入的,将要跳转页的页码var getpageclick = $("#pageclick").val();//如果输入页码大于最大页数,跳转最后一页if (getpageclick > pagenum)getpageclick = pagenum;//如果输入页数小于第一页,跳转第一页if (getpageclick < 1)getpageclick = 1;//判断当前显示页,第一条数据,的序列数var begindata = (getpageclick - 1) * everypage;//判断当前显示页,最后一条数据,的序列数if (begindata + everypage > newdata.dataInfo.length) {enddata = newdata.dataInfo.length;}else {enddata = begindata + everypage;}//将计算出的起始数据和截止数据显示出来var str = "";if (newdata.dataInfo.length != 0) {for (var i = begindata; i < enddata; i++) {str += "<tr><td>" + newdata.dataInfo[i].recordTime +"</td><td>" + newdata.dataInfo[i].userName +"</td><td>" + newdata.dataInfo[i].taskID + newdata.dataInfo[i].info + "</td></tr>";}}$("#tableText").html(str);//ShowPageFloot(getpageclick, pagenum);}


http://chatgpt.dhexx.cn/article/SEIy5NVY.shtml

相关文章

利用vue实现树表格分页

目录 1. 准备工作 2. 动态树 2.1 在配置请求路径 2.2 使用动态数据构建导航菜单 2.2.1 通过接口获取数据 2.2.3 通过后台获取的数据构建菜单导航 2.3 点击菜单实现路由跳转 2.3.1 创建书本管理组件 2.3.2 配置路由 2.3.3 修改LeftAside组件 2.3.4 修改Main组件 3. …

Layui 表格分页控件

分页模块 – layui.laypage layPage 致力于提供极致的分页逻辑,既可轻松胜任异步分页,也可作为页面刷新式分页。 快速使用 laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染: 基础参数选项 通过核心方法:laypage.rende…

ant design pro表格分页

需要用到表格的配置项pagination pagination{{ showQuickJumper:true, showTotal:function(total, range){ return( 共total条 ) } }} 效果&#xff1a; 这样可以选择跳转到某个页面&#xff0c;如果如数的数值大于最后一页&#xff0c;那么将跳转到最后一页&#xf…

Thinkphp+layui数据表格实现表格分页

项目场景&#xff1a;Thinkphplayui数据表格实现表格分页 提示&#xff1a;thinkphplayui数据表格分页&#xff0c;需要服务器端配合。之前在百度上一通乱搜也没找到解决方案。 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 之前一看layui的文档一只以…

Vue+elementUI实现Table表格分页效果

VueelementUI实现Table表格分页效果 在毕业项目书写时&#xff0c;需要实现分页效果&#xff0c;而查找了大部分资料&#xff0c;大多是静态Table表格的分页&#xff0c;而该项目的数据大多是后台查询后的动态数据&#xff0c;于是我参考了网上的方法&#xff0c;并进行了一系列…

layui 树形表格分页功能

layui目前仅有常规表格分页及树形图&#xff0c;未能有树形图分页功能&#xff0c; 采用另外单独设立分页栏&#xff0c;分页改变时调用方法重载树形树形表格数据。 20230628更 感谢各位的喜欢&#xff0c;因不经常登录&#xff0c;这里贴一下部分代码,以供参考。 后台部分为…

JAVA_树状表格分页(layUI、treeTable.js)

效果图展示(PS:本人很懒&#xff0c;刚开始想在网上随意找一个就用&#xff0c;后来发现好像PHP的不少&#xff0c;JAVA的树状表格大多数跟我开始写的一样没有分页&#xff0c;导致数据量过大后加载过于缓慢被客户吐糟&#xff0c;最后没找到合适的就自己写了一个简单的demo&am…

关于layui表格分页问题

分页时注意 limitName必须与后端接收时的字段名相同 后端接收时需要注意page>0时需要page-1

vue 实现简单表格分页功能

使用框架实现表格展示和跳转功能&#xff0c;一直不懂原理。所以自己写一个简单的&#xff0c;加深理解。 布局分为2块&#xff0c;上面是表格展示数据&#xff0c;下面是点击按钮跳转。 效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en&q…

element 表格分页选中

需求&#xff1a; 分页表格实现分页选中&#xff0c;编辑时可以进行回显。 实现&#xff1a; 刚开始拿到需求后本来是自己写代码实现分页选中&#xff0c;后来查了文档&#xff0c;发现可以根据element-table中的提供的属性实现&#xff1b;如下图方式实现&#xff1b; //el…

前端表格分页功能

前端表格分页功能 我的设想难点实现效果展示&代码 我的设想 1.一次性将所有数据请求到&#xff0c;然后分成很多部分给前端来显示 &#xff08;优点&#xff1a;一次性请求完成&#xff0c;无需再请求&#xff0c;缺点&#xff1a;可能用户并不需要用到全部的数据段&…

表格 + 分页 +表格上编辑

分装分页表格 分页表格的封装代码截图实现的功能分页咋弄的dataPacket是啥看下图表格编辑咋搞的我其实啥都不想写。。图片贴上就完了↑↑↑你这个东西咋用呀效果展示一下吧---好的 分页表格的封装 想要使用表格&#xff0c;可以&#xff01; 有各种各样的插件。。。 想要使用分…

js分页、表格

js分页代码&#xff1a; //js分页 //el:分页容器 count:总记录数 pageStep:每页显示多少个 pageNum:第几页 fnGo:分页跳转函数 var jsPage function(el, count, pageStep, pageNum, fnGo) {this.getLink function(fnGo, index, pageNum, text) {var s <a href"#p i…

使用element-ui实现表格分页

前言 由于项目需要&#xff0c;我使用到了element-ui&#xff0c;当需要使用到表格分页功能的时候&#xff0c;就遇到了一些问题&#xff0c;但通过努力还是解决了&#xff0c;接下来就让我讲一下我对于element-ui中的分页功能的了解&#xff08;因为这次讲的是表格的分页&…

排序算法---快速排序、堆排序、冒泡排序

排序算法 1 快速排序代码实现stdlib库快排 2 堆排序堆排序的基本思想如何构造一个大顶堆排序 3 冒泡排序 1 快速排序 文章原地址&#xff1a;https://blog.csdn.net/morewindows/article/details/6684558 快速排序的平均时间复杂度是0(NlogN)&#xff0c;它采用了一种分治的策…

ARM C语言调用汇编函数 实现冒泡排序

使用冒泡排序将指定数组排序后输出排序函数使用汇编语言编写&#xff0c;C语言调用汇编语言在控制台显示排序前后的结果 一、问题分析二、代码编写2.1 C语言代码2.2 汇编代码 三、ADS调试3.1 运行ADS软件&#xff0c;进入调试界面3.2 汇编函数调试3.3 执行结果 一、问题分析 本…

汇编入门程序,冒泡排序

写了半天发现资料不多&#xff0c;放上来造福一下人类&#xff0c;主要题库的题也好多题解太少 一 用汇编语言编写程序&#xff0c;要求实现以下功能&#xff1a; 程序执行后&#xff0c;屏幕显示提示信息&#xff1a;“Please Enter The Password:”&#xff0c;等待输入用…

汇编语言实现冒泡排序

文章目录 题目简述思路代码总结 题目简述 给定10个数&#xff0c;使用汇编语言&#xff0c;实现10个数的冒泡排序&#xff0c;使之成为升序 思路 本题中&#xff0c;我们需要使用条件转移指令&#xff0c;比较指令&#xff08;CMP&#xff09;&#xff0c;交换指令&#xff…

微机原理实现冒泡排序

微机原理实现冒泡排序 废话不说先放题目 实验目的 1&#xff09; 学会从键盘中读取输入&#xff0c;并将其ASCII码进行转化。 2&#xff09; 利用所学的冒泡排序对数组进行输出 3&#xff09;学会使用中断程序进行字符的输出。 实验所用仪器及使用方法 Windows emu8086仿…

MIPS实现冒泡排序

程序目标 从键盘输入10个无符号字数并从大到小进行排序&#xff0c;排序结果在屏幕上显示出来。 准备工作 编程的入门级知识&#xff1a;循环、冒泡排序、内存和堆栈的概念MIPS语法&#xff1a;程序基本结构汇编语言&#xff1a;不同寄存器作用、数据存储、系统调用编辑器&a…