我在Mojarra 2.1.7-jbossorg-1上使用PrimeFaces 5.1,OmniFaces 1.7版。
我想要的是一个p:ajaxStatus,带有loader.gif和灰色内容,而某些ajax请求正在运行。
这是我的template.xhtml页面中的代码,用于ajaxStatus和blockUI:
<p:ajaxStatus
style="width:55px;height:55px;position:absolute; top: 0%; left: 50%; margin-left: -27px; margin-top: 25px; z-index: 100;"
id="loadingRefresh" onstart="PF('bui').show();" oncomplete="PF('bui').hide();" onerror="PF('bui').hide();"
onsuccess="PF('bui').hide()">
<f:facet name="start">
<h:graphicImage id="loading" library="images" name="ajax-loader.gif" />
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
<f:facet name="error">
<h:outputText value="" />
</f:facet>
<f:facet name="suceess">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
<p:blockUI block="-content" widgetVar="bui" />
这是我的测试页面test.xhtml
上的代码<ui:define name="content">
<h:form id="testForm">
<p:commandLink value="testLinkToOpenDialogBox" update="test"
actionListener="#{myBean.doSomething()}" oncomplete="PF('testDialog').show()">
<f:param name="aggregationDataId" value="5" />
</p:commandLink>
<p:dialog widgetVar="testDialog" header="test" >
<p:commandButton id="test" action="#{myBean.doSomething()}"></p:commandButton>
</p:dialog>
</h:form>
</ui:define>
如果我点击我的testLink打开对话框,当我单击对话框中的测试按钮时,loader.gif会显示很短的时间,而testLink会显示为灰色约500ms。
现在的问题是,当我非常快地点击测试按钮大约20次(并立即关闭对话框)时,testLink将变灰并被阻止大约10秒钟。接缝,p:blockUI的淡入和淡出时间太长了! 我该如何避免这个问题?是否可以将淡入淡出时间设置为较小的值?