如何使用servlet在jsp页面中显示“数据加载”

时间:2010-07-18 16:31:16

标签: java javascript jsp

我们有一个经典的JSP + Servlets应用程序,并希望在页面中的数据需要一段时间加载时显示“内容正在加载”类型的消息。

通过JS有一种简单的方法吗?

情景:

  • Page1(a.jsp) - >选择下拉菜单 - > 点击搜索//数据被发回 db的服务器
  • URL更改为(b.jsp),显示白页,然后在30秒后加载数据

对于那些我要显示微调器或某些消息的30秒。

添加ajax或jquery需要进行设计更改,这是我们现在无法做到的。虽然应用程序已经将jQuery用于其他东西,但是b.jsp正在从该页面进行数据库调用...

4 个答案:

答案 0 :(得分:1)

AJAX就是这样做的。您需要服务器端的某些内容来帮助您跟踪进度。

答案 1 :(得分:1)

在jsp中调用DB会非常不满意。考虑到问题的前提,你可以

//b.jsp

<div id="msg">data is loading...</div>

<% 
   out.flush();
   db.performanLengthJob(); 
%>

<script> $("msg").remove(); </script>

<p>Data is loaded!</p>

答案 2 :(得分:0)

使用ajax请求加载数据(在b.jsp中)。

创建一个在加载时启动的JS函数,让它显示你的消息('30秒'),然后让它执行ajax请求来加载必要的数据。

我建议你使用一些js-framework,比如jQuery,它会让事情变得更简单。

为了在服务器端处理ajax-request,您需要再创建一个servlet并将其映射到某个URL,如your_app_name/ajaxsupport。这个servlet应该以一种方便的格式返回数据(它可以是纯文本,xml,或JSON或其他任何东西)。在客户端,您将处理收到的数据并显示它。

答案 3 :(得分:0)

快速解决方案可以是使用你的基页html body s.g的onbeforeunload JS事件。像

<body onbeforeunload="$("yourComponent").show();">