JSP进度条

时间:2011-05-04 12:07:52

标签: java eclipse jsp servlets

在JSP中实现进度条是否有一种非常简单的方法。基本上我有一个JSP页面转到调用方法的servlet,现在这个过程将运行很长时间我想表明进度的状态就像在eclipse任务栏中显示的进度条一样当我们执行任何java程序时。

我在这里找到了一个很好的教程http://onjava.com/pub/a/onjava/2003/06/11/jsp_progressbars.html,但它似乎很少过时。

有没有新的简单方法来实现这个?

3 个答案:

答案 0 :(得分:3)

一旦进入细节,确定特定任务的进度是一件非常复杂的事情。例如,您如何确定您已完成50%?如果最后10%的任务占总时间的1/2,会发生什么?

通常对于网络应用程序,如果你确实需要进度条,那么最好采用AJAX路线,就像上面提到的一些海报一样。 但是,我发现在网络上,向用户表明正在发生 某事 是合适的。只需在提交页面时使某种微调器可见,然后在渲染时再次隐藏(参见here )。这很容易做到,不会导致额外的性能损失,并且表明某种进展

答案 1 :(得分:1)

有很多解决方案,例如jQuery。

您可以使用Jquery和Ajax来更新进度条:

http://jqueryui.com/demos/progressbar/

答案 2 :(得分:0)

在我看来,当你调用你的jsp时,它应该立即返回给用户,但也指出在后台处理一些复杂的任务(例如使用加载微调器)。如果您想知道任务的进度,您应该使用Ajax轮询或Comet push来从服务器中检索它。为了获得并显示进度,我认为Ajax已经足够,Comet可能有点过分。以下是Ajax方法的更多内容:

http://en.wikipedia.org/wiki/Ajax_(programming

更多关于您的问题,servlet(以及jsp)根据HTTP协议工作,该协议基于请求 - >响应模型。在今天的世界中,很少有网站可以让你去jsp做复杂的任务,然后在你的请求完成时你必须无所事事。您可能希望让用户自由地与您的网络应用程序/网站进行交互,同时在后台处理他的请求。