jQuery实现动态无刷新分页与跳转技巧
"该资源提供了一种使用jQuery实现无刷新分页和页面跳转的方法,通过AJAX异步请求获取数据并更新页面内容,提高用户体验。" 在网页开发中,无刷新分页是一种常见的功能,它允许用户在不重新加载整个页面的情况下浏览大量数据。这个实例使用了jQuery库,一个轻量级的JavaScript库,来实现这一功能。以下是关键的知识点: 1. **jQuery**: jQuery简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。在这个例子中,它用于处理用户交互和页面更新。 2. **AJAX (Asynchronous JavaScript and XML)**: AJAX是创建动态网页的技术,通过在后台与服务器进行少量数据交换,使网页实现异步更新。在这里,jQuery的`$.post`方法用于发送POST请求到服务器,获取分页数据。 3. **jQuery文档准备函数 `$(document).ready()`**: 这个函数确保在DOM(文档对象模型)加载完成后再执行内部的代码,确保所有元素都能被正确访问。 4. **变量声明**: - `pagecount`: 存储总页数,计算方式为总记录数除以每页显示的数据量,如果有余数,则页数加一。 - `AllCount`: 存储总记录数,从服务器返回。 - `page`: 当前页码,初始化为1。 - `pageData`: 每页显示的数据量。 5. **AJAX请求获取分页数据**: - `$.post` 方法发送请求到 "PMSysHandler.ashx",参数 "Action" 设置为 "getPageCount",服务器响应后将总页数赋值给 `AllCount`。 - 计算总页数 `pagecount`,并更新页面上的分页信息。 6. **事件监听**: - `$('#Go').click()`: 监听用户输入页码并跳转。首先验证输入的页码是否为数字,然后检查是否超出范围,如果有效则更新当前页码和分页信息,并调用 `getAllOwnerInfo` 获取新页的数据。 - `$('#upPage').click()`: 监听上一页按钮,防止用户点击上一页时页码变成负数,并更新页面信息和数据。 7. **`getAllOwnerInfo` 函数**: - 这个函数很可能负责获取指定页码的数据,通过将 `(page-1)*pageData` 和 `pageData` 作为参数传递给服务器,获取当前页的数据,然后使用这些数据更新页面内容。 8. **正则表达式验证**: - 使用正则表达式 `new RegExp("^[0-9]+$")` 验证输入的页码是否全为数字。 通过以上步骤,实现了无刷新分页的效果,提升了用户体验,使得用户可以在不等待页面完全重载的情况下查看不同页面的内容。同时,提供的跳转功能和错误提示增强了交互性。
js代码:
jQuery(document).ready(
function() {
var pagecount = 0; //总共多少页
var AllCount = 0; //总共几行
var page = 1; //第几页
var pageData = 10; //一页多少行
jQuery.post("PMSysHandler.ashx", { "Action": "getPageCount" }, function(pageAllCount, status) {
AllCount = pageAllCount;
pagecount = parseInt(AllCount / pageData);
if (pageAllCount % pageData != 0) {
pagecount++;
}
jQuery('#Sum').html("一共有" + AllCount + "行,当前第" + page + "/" + pagecount + "页,每页" + pageData + "行");
getAllOwnerInfo(page - 1, pageData);
})
jQuery('#Go').click(function() {
var pagenum = jQuery('#pagenum').val();
var Part = new RegExp("^[0-9]+");
if (!Part.exec(pagenum)) {
alert("输入格式错误!");
}
else if (pagenum > pagecount) {
alert("请输入在总页数范围内的页数!");
jQuery('#pagenum').val("");
}
else {
jQuery('#Sum').html("一共有" + AllCount + "行,当前第" + page + "/" + pagecount + "页,每页" + pageData + "行");
getAllOwnerInfo((page - 1) * pageData, pageData);
}
})
jQuery('#upPage').click(function(e) {
e.preventDefault();
if (page - 1 <= 0) {
alert("当前已经是第一页!");
return;
}
else {
page = page - 1;
jQuery('#Sum').html("一共有" + AllCount + "行,当前第" + page + "/" + pagecount + "页,每页" + pageData + "行");
getAllOwnerInfo((page - 1) * pageData, pageData);
}
})
jQuery('#downPage').click(function(e) {
e.preventDefault();
if (page + 1 > pagecount) {
alert("当前已经是最后一页!");
return;
}
else {
page = page + 1;
jQuery('#Sum').html("一共有" + AllCount + "行,当前第" + page + "/" + pagecount + "页,每页" + pageData + "行");
getAllOwnerInfo((page - 1) * pageData, pageData);
}
})
jQuery('#first').click(function(e) {
剩余9页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦