【问题标题】:JSP Progress BarJSP 进度条
【发布时间】:2011-08-18 11:50:23
【问题描述】:

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

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

有什么新的简单的方法可以实现吗?

【问题讨论】:

    标签: 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)。这很容易做到,不会造成额外的性能损失,并且表明某种进步

      【讨论】:

        【解决方案3】:

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

        您可以使用带有 Ajax 的 Jquery 来更新进度条:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-11
          • 1970-01-01
          • 1970-01-01
          • 2013-03-08
          • 2013-09-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多