惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
L
LangChain Blog
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
小众软件
小众软件
量子位
The GitHub Blog
The GitHub Blog
博客园 - 【当耐特】

热爱生活与梦想

迁移LeanCloud的Waline评论数据到TiDB/Neon 25年江浙地区暑假自驾游之感慨 使用阿里云灵码继续完成构建 SSL 证书管理器 亲手给儿子做的棒棒糖摩天轮六一礼物 使用腾讯云 CodeBuddy 构建 SSL 证书管理器 修复代码块默认高度相关缺陷 HugoNexT4.7.2 新功能和升级提示 改善代码块折叠和选中功能 支持Github风格的警告样式 新增音乐短代码功能支持 给文章添加摘要和过期提示功能 回顾24年的过去总结 修复Mathjax行内显示公式的问题 给Hugo文章增加阅读更多跳转的锚点定位功能 Win10隐匿的VPN设置和L2TP连接常见错误 Go语言中“糟糕”的日期时间格式化设计 DaoCloud道客提供的免费Docker镜像代理服务 感谢万能淘宝让自己吃到喜欢的美食 WSL运行时遇到未知异常错误无法使用 隐藏的换行符导致Base64加密解密失败 MySQL自带客户端直接免密登录操作 Linux系统中删除目录软链接的注意项 Java程序调用外网API时CA问题 如何不关机重启WSL2恢复虚拟服务 在Windows上安装Podman容器平台做虚拟化 记一次无法弹出移动硬盘的记录 为友情链接添加自动检测脚本 重新激活Github的2FA认证 Linux中使用tar压缩命令排除文件 继续小米手环的健康生活之旅
关于Struts2与Jquery实现无刷新分页的不解问题
凡梦星尘 · 2010-11-03 · via 热爱生活与梦想

我最近正在做一个无刷新的网站管理后台,并把它作为我的毕业设计主题,不过在代码实现上遇到了点小问题,想向大家请教一二。我的设计思路大概是这样的:将后台所生成的数据用JSON的格式输出,在前台借助JQUERY的AJAX功能将传过来的数据写出。这样的方式在实现数据的增、改、删功能上并不会很难,不过在数据的查询方面便麻烦了,如何实现数据的无刷新分页呢?我查阅网上一些网友的做法,不过普遍发现他们的代码有点繁琐也不符合我设计初衷。通过查看JQUERY的API我自己想出了一种可行的方案(目前已经实现部分功能):在查询的页面中先创建一个无数据的表格样式,通过JQUERY的CLONE功 能在查询数据时复制这个表格的样式同时将后台传过的数据填充其中和移除那行无数据的样式表格。

前台的JS相关代码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

// 显示所查询的数据
function dataSource(){
	$.ajax({
		url:"${pageContext.request.contextPath}/jsonservlet",
		type:"post",
		data:{},
		dataType:"json",
		error:function(){alert("服务器通讯失败,请稍后再刷新页面。 ^_^");},
		success:function(data){
			insertTr(data);
		}
	});
}
// 查询数据的分页跳转
function goPage(thePage){
	$.ajax({
		url:"${pageContext.request.contextPath}/jsonservlet",
		type:"post",
		data:{page:thePage},
		dataType:"json",
		error:function(){alert("服务器通讯失败,请稍后再刷新页面。 ^_^");},
		success:function(data){
			insertTr(data);
		}
	});
}
// 填充表格中的每行数据
function insertTr(data) {
	//读取tr里数量
	var r = $("#datasource tr").size();
	var list = data.dataSource;
	$.each(list, function(i, r) {
		//克隆已有的表格样式及属性
		var row = $("#source").clone();
		//将数值填充至表格中
		row.find("#id").text(r.id)
		row.find("#name").text(r.name);
		row.find("#time").text(r.time);
		//将此行添加到表格中
		row.appendTo("#datasource");
	});
	// 移除第一行,因为它只有样式没有数据
	$("#datasource").children("tr:first").remove();
}

通过实践发现这个方案是可行的,不过出现了一个问题:在数据翻页时如何将当前的数据移除并将新数据填充到页面中呢?(即:在转到第2页时把当前第1页的数据移除并填充第2页的数据)我尝试了很多方法可仍是未能实现我想要的无刷新的分页效果,希望大家能帮我看看是哪里出问题了。谢谢。

PS: (最后自行解决了,解决方案如下)

1
2

var r = $("#datasource tr").size();

只要在上面的代码后面增加如下的代码:

1
2
3
4

if(r > 1){
     $("#datasource").find("tr:not(:first)").remove();
}

“代码下载”