为了证明正在进行的漫长过程,我需要展示一个简单的示例,在我点击JSP页面中表单的提交按钮后,在JSP上放置沙漏或进度条或类似动画,我正在等待流程操作阶段的结束才能显示下一个JSP页面。
一个例子是Liferay在点击提交表单时显示的一小部分,这会掩盖JSP。
这与将文件上传到服务器无关。
这是一个简单的例子,展示了一个等待漫长过程阶段结束的事情。
提前谢谢!
Ivano C.
答案 0 :(得分:0)
您可以使用aui实现进度条:
答案 1 :(得分:0)
确保您的liferay-portlet.xml
具有正确的ajaxable
和render-weight
配置集。 Check the DTD - 这是一段摘录:
<!--
The default value of render-weight is 1. If set to a value less than 1, the
portlet is rendered in parallel. If set to a value of 1 or greater, then the
portlet is rendered serially. Portlets with a greater render weight have greater
priority and will be rendered before portlets with a lower render weight.
If the ajaxable value is set to false, then render-weight is always set to 1
if it is set to a value less than 1. This means ajaxable can override
render-weight if ajaxable is set to false.
-->
<!ELEMENT render-weight (#PCDATA)>
<!--
The default value of ajaxable is true. If set to false, then this portlet can
never be displayed via Ajax.
-->
<!ELEMENT ajaxable (#PCDATA)>
有了这个,你的portlet可能需要多长时间,但是整个页面已经交付 - 只是你的长时间运行的portlet正在显示一个微调器,直到它实际异步加载。
通过将Thread.sleep(5000)
添加到portlet的view.jsp(带有适当的异常样板)来检查这一点
(这也是Liferay的股票RSS portlet所使用的:如果它获取慢速RSS源,它也会异步运行。你可能会在那里体验它,第一手资料)