热门标签 | 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);
}
}

推荐阅读
  • 优化使用Apache + Memcached-Session-Manager + Tomcat集群方案
    本文探讨了使用Apache、Memcached-Session-Manager和Tomcat集群构建高性能Web应用过程中遇到的问题及解决方案。通过重新设计物理架构,解决了单虚拟机环境无法真实模拟分布式环境的问题,并详细记录了性能测试结果。 ... [详细]
  • 本文介绍了Java Web应用中的资源重定向和请求转发机制,包括默认欢迎资源文件的设置方法,以及多个Servlet之间的调用规则和数据共享方案。 ... [详细]
  • 本文详细介绍了如何配置Apache Flume与Spark Streaming,实现高效的数据传输。文中提供了两种集成方案,旨在帮助用户根据具体需求选择最合适的配置方法。 ... [详细]
  • Jenkins 安装指南:Windows 平台详解
    本文详细介绍了如何在Windows平台上安装和配置Jenkins,包括安装步骤、启动方法及基本的系统配置,旨在帮助初次使用者顺利搭建持续集成环境。 ... [详细]
  • 利用 Jest 和 Supertest 实现接口测试的全面指南
    本文深入探讨了如何使用 Jest 和 Supertest 进行接口测试,通过实际案例详细解析了测试环境的搭建、测试用例的编写以及异步测试的处理方法。 ... [详细]
  • 本文详细介绍了如何使用Python通过GET和POST方法发送HTTP请求,并接收HTTP响应的具体实现方法。包括示例代码和相关模块的功能说明。 ... [详细]
  • 前端常用的布局类型——前端布局
    1.Static静态布局固定宽高:2.Liquid流式布局宽高用百分比,按屏幕分辨率调整,布局不发生变化3.Adaptive自适应 ... [详细]
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • 本文介绍了如何使用XMLHttpRequest对象进行简单的异步请求,并详细描述了从创建对象到发送请求及处理响应的全过程。 ... [详细]
  • 本文详细介绍了Java库中`com.ait.tooling.nativetools.client.collection.NFastArrayList`类的构造函数`()`的使用方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用这一高效的数据结构。 ... [详细]
  • 深入理解BIO与NIO的区别及其应用
    本文详细探讨了BIO(阻塞I/O)和NIO(非阻塞I/O)之间的主要差异,包括它们的工作原理、性能特点以及应用场景,旨在帮助开发者更好地理解和选择适合的I/O模型。 ... [详细]
  • 在使用Rails Paperclip插件与AWS S3进行文件管理时,遇到了`exists?`和`clear`方法调用时出现的`AWS::S3::Errors::BadRequest`错误。本文探讨了问题的原因及可能的解决方案。 ... [详细]
  • List & Label 19现已发布,此版本引入了报表参数、集合变量、扩展区域以及交互式排序等功能,并增加了对OData和REST数据提供器的支持,同时推出了包括组合图、堆叠图、漏斗图等在内的新型图表。 ... [详细]
  • MySQL中的Anemometer使用指南
    本文详细介绍了如何在MySQL环境中部署和使用Anemometer,以帮助开发者有效监控和优化慢查询性能。通过本文,您将了解从环境准备到具体配置的全过程。 ... [详细]
  • Facebook PrestoDB 配置指南
    本指南详细介绍了如何安装和配置 Facebook PrestoDB,包括必要的文件设置和启动方法。 ... [详细]
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社区 版权所有