【问题标题】:JSP Progress BarJSP 进度条
【发布时间】:2011-08-18 11:50:23
【问题描述】:
【问题讨论】:
标签:
java
eclipse
jsp
servlets
【解决方案1】:
在我看来,当您调用 jsp 时,它应该立即返回给用户,但同时也表明正在后台处理一些复杂的任务(例如,使用加载微调器)。如果您想知道任务的进度,您应该使用 Ajax 轮询或 Comet 推送以便从您的服务器中检索它。对于仅仅获取和显示进度,我认为 Ajax 就足够了,而 Comet 可能有点矫枉过正。以下是有关 Ajax 方法的更多信息:
http://en.wikipedia.org/wiki/Ajax_(programming)
关于您的问题的更多信息,servlet(以及 jsp)根据 HTTP 协议工作,该协议基于 request->response 模型。在当今世界,很少有网站可以让您访问 jsp 来完成一项复杂的任务,然后您必须在完成请求时无所事事。您可能希望让您的用户在后台处理他的请求时仍然可以与您的网络应用程序/网站进行交互。
【解决方案2】:
一旦了解细节,确定特定任务的进度是一件非常复杂的事情。例如,你如何确定你完成了 50%?如果最后 10% 的任务占用了总时间的 1/2,会发生什么?
通常对于 Web 应用程序,如果您确实想要进度条,那么最好采用 AJAX 路线,就像上面提到的一些海报一样。
然而,我发现在网络上,向用户表明 某事 正在发生是合适的。只需在提交页面时使某种微调器可见,然后在呈现时再次隐藏(参见here)。这很容易做到,不会造成额外的性能损失,并且表明某种进步