热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用AJAX动态加载列表数据并展示

AJAX技术允许网页在不重新加载整个页面的情况下进行异步更新,通过向服务器发送请求并接收JSON格式的数据,实现局部内容的动态刷新。

利用AJAX技术,可以通过异步请求从服务器获取数据,并将这些数据以JSON格式返回,然后在前端页面中动态地渲染这些数据,从而实现页面的部分更新,提高用户体验。


具体实现步骤如下:


前端部分


当用户点击某个链接或按钮时,触发AJAX请求,向指定URL发送POST请求,携带必要的参数(如页码、时间范围等),并在成功回调函数中处理返回的数据。


$(document).ready(function() {
$('a').click(function() {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/Table_fenye/servlet/ListData',
data: {
page: $(this).text(),
starttime: $('#start').val(),
stoptime: $('#end').val(),
obj: $('#obj').val(),
opt: $('#opt').val(),
now: $('#now').val()
},
dataType: 'json',
success: function(data) {
$('#ct').empty(); // 清空表格内容
var html = '';
$.each(data, function(index, item) {
html += '' +
'' + item.msg + '' +
'' + item.time + '' +
'' + item.username + '' +
'' + item.app + '' +
'' + item.operation + '' +
'' + item.object + '' +
'' + item.result + '' +
'' + item.detail + '' +
'';
});
$('#ct').html(html);
}
});
});
});

后端部分


后端需要处理前端发送的请求,解析请求参数,执行数据库查询操作,将查询结果转换为JSON格式返回给前端。


public class ListData extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=utf-8");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();

String page = request.getParameter("page");
String starttime = request.getParameter("starttime");
String stoptime = request.getParameter("stoptime");
String obj = request.getParameter("obj");
String opt = request.getParameter("opt");
String now = request.getParameter("now");

int pageSize = 20;
int pageNum = 0;

if (page.equals("上一页")) {
pageNum = Integer.valueOf(now) - 2;
} else if (page.equals("下一页")) {
pageNum = Integer.valueOf(now);
} else {
pageNum = Integer.valueOf(page) - 1;
}

DateFormat format = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
java.sql.Date startDate = null;
java.sql.Date endDate = null;

try {
startDate = new java.sql.Date(format.parse(starttime).getTime());
endDate = new java.sql.Date(format.parse(stoptime).getTime());
} catch (ParseException e) {
e.printStackTrace();
}

int from = pageNum * pageSize;
List list = new ArrayList<>();

Connection cOnn= JdbcUtil.getConn();
String query = "SELECT id, msg, time, username, app, operation, object, result, detail FROM startstopinfo "
+ "WHERE app = '" + obj + "' AND operation = '" + opt + "' AND time2 >= '" + startDate + "' AND time2 <= '" + endDate + "' "
+ "ORDER BY time2 LIMIT " + from + ", " + pageSize;

Statement stmt;
try {
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);

while (rs.next()) {
StartstopInfo info = new StartstopInfo();
info.setId(rs.getInt(1));
info.setMsg(rs.getString(2));
info.setTime(rs.getString(3));
info.setUsername(rs.getString(4));
info.setApp(rs.getString(5));
info.setOperation(rs.getString(6));
info.setObject(rs.getString(7));
info.setResult(rs.getString(8));
info.setDetail(rs.getString(9));
list.add(info);
}

rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}

Gson gson = new Gson();
String jsOnResult= gson.toJson(list);
out.print(jsonResult);
}
}

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 本文介绍如何在PostgreSQL数据库中正确插入和处理JSON数据类型,确保数据完整性和避免常见错误。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 5G至4G空闲态移动TAU流程解析
    本文详细解析了用户从5G网络移动到4G网络时,在空闲态下触发的跟踪区更新(TAU)流程。通过N26接口实现无缝迁移,确保用户体验不受影响。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
author-avatar
llllllw_wlllllll
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有