0

我对 AJAX 很陌生,但遇到了一个问题。我的 JSP 中有一个<div>。我有另一个 JSP 包含在上述 JSP 中,使用<jsp:include>. 问题是包含的 JSP 执行 DB 操作并且需要大量时间来呈现。我希望先加载前一个 JSP,然后在 DIV 中呈现后一个 JSP。我搜索但不明白如何解决它。基本上,我希望显示前一个 JSP,然后在完成操作后显示后者。目前,前一个 JSP 需要大量时间来加载,因为后者包含在前一个 JSP 中,并且只有在后一个 JSP 完成加载后才会呈现。

感谢你的帮助。:)

4

2 回答 2

0

我相信这不是正确的做法。DB 交互部分应该由一些 Servlet 触发的 DAO 类来完成。使用 JSP 进行 DB 交互是不好的。话虽如此,您当前的问题可以通过以下方法解决:

  1. 从 JSP 中删除所有 DB 操作。
  2. div在您的主 JSP 中保留一个。
  3. 在加载时,触发对 Servlet 的 AJAX 调用。
  4. Servlet/DAO 类执行 DB 操作并返回结果。session如果需要,将结果存储在其中。
  5. 在 AJAX 请求函数的成功处理程序中,编写一个回调函数来加载另一个 JSP 文件。

检查这个答案Load a jsp page using AJAX load method

于 2013-08-19T07:23:24.363 回答
0

流行的方法是使用jQuery等 javascript 库并使用 ajax 调用长时间运行的操作

$.ajax('/longrunningop', {
  type: 'POST',
  data: 'a=1&b=2'}).done(function(data) {
    // code to display data to div here..
  });

好的做法是编写长时间运行的操作以返回 JSON 而不是 JSP

于 2013-08-19T07:23:59.527 回答