use*_*206 5 javascript java ajax jquery struts2
我目前正在处理一个文件转换程序,一旦文件被上传,它会将文件转换为不同的文件格式(ppt,pdf),这通常需要很长时间,具体取决于文件大小.由于文件转换发生在后端,我希望用户看到文件转换的进度(如进度条,例如"52%正在转换的文件"),无论如何,我可以向用户显示当前进度文件转换(发生在后端)?在文件转换期间,我只能显示状态(数字(由我正在使用的API提供))
我不知道从哪里开始可以有人提供一些见解或方法?
如果您使用的是Struts2,请查看Execute and Wait Interceptor.它会为您的任务创建新线程,该线程将在后台执行,同时您可以向用户显示一些进度.
在struts.xml文件中execAndWait为您的长时间运行添加拦截器并定义两个结果wait和success.
<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中轮询此操作.