服务器端 - 进度条

use*_*206 5 javascript java ajax jquery struts2

我目前正在处理一个文件转换程序,一旦文件被上传,它会将文件转换为不同的文件格式(ppt,pdf),这通常需要很长时间,具体取决于文件大小.由于文件转换发生在后端,我希望用户看到文件转换的进度(如进度条,例如"52%正在转换的文件"),无论如何,我可以向用户显示当前进度文件转换(发生在后端)?在文件转换期间,我只能显示状态(数字(由我正在使用的API提供))

我不知道从哪里开始可以有人提供一些见解或方法?

Ale*_*r M 6

如果您使用的是Struts2,请查看Execute and Wait Interceptor.它会为您的任务创建新线程,该线程将在后台执行,同时您可以向用户显示一些进度.

struts.xml文件中execAndWait为您的长时间运行添加拦截器并定义两个结果waitsuccess.

<action name="longRunningAction" class="...">
  <interceptor-ref name="defaultStack"/>
  <interceptor-ref name="execAndWait"/>
  <result name="wait">longRunningAction-wait.jsp</result>
  <result name="success">longRunningAction-success.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)

您仍然需要通过AJAX或简单页面刷新在JSP中轮询此操作.

  • 您将丢失在`defaultStack`中定义的所有其他拦截器. (2认同)