关键词:
【中文标题】如何在 JSF 上延迟 Primefaces AjaxStatus?【英文标题】:How to delay Primefaces AjaxStatus on JSF? 【发布时间】:2016-10-13 11:17:18 【问题描述】:如何在 Primefaces 的 AjaxStatus 显示时添加延迟(例如 300 毫秒)。现在,当有一个 Ajax 请求挂起时,它总是立即显示。这对于例如“onkeyUp”事件来说是很麻烦的,因为每次击键都会在瞬间打开加载对话框。
这是我的 AjaxStatus 加载指示器组件:
<p:ajaxStatus id="startAjax" onstart="PF('start').show();" oncomplete="PF('start').hide();" >
</p:ajaxStatus>
<p:dialog widgetVar="start" showHeader="false" resizable="false">
<h:graphicImage value="#resource['/images/loading.gif']"></h:graphicImage>
</p:dialog>
【问题讨论】:
您可以使用 primefaces 扩展<pe:timer>
并从定时器调用 ajaxStatus 或 onShow
属性在 <p:dialog>
中可用,从那里调用定时器,它不会做任何事情,只是等待然后控制将返回将显示对话框和 ajaxStatus。
@techipank,pe:timer 似乎已被弃用。我将 Primefaces Extensions 添加到 maven 依赖项和命名空间 xmlns:pe="primefaces.org/ui/extensions" 和 pe: 仅提供时间线和时间选择器组件。没有计时器。也许 onstart="myStart('start')"
并在 function myStart(pfo)
中使用 window.setTimeout()
调用 PF(pfo).show()
@holger 是对的。所有纯 JavaScript。与 ajax、jsf 或 PrimeFaces 无关
【参考方案1】:
你需要用一个函数来包装你的 PF('start').start() ,这个函数会延迟调用它。此外,onComplete 处理程序应检查您是否有待显示和取消它们的状态。这是为了避免ajax在状态显示之前完成的情况。
代码应该是这样的(未经测试)
<p:ajaxStatus id = "startAjax" onstart = "startHandler();" oncomplete = "endHandler();"/>
<script>
var ajaxInProgress;
function startHandler()
ajaxInProgress = setTimeout(function ()
if(ajaxInProgress)
PF('start').show();
, 3000);
function endHandler()
clearTimeout(ajaxInProgress);
PF('start').hide();
ajaxInProgress = null;
</script>
【讨论】:
谢谢。我会试试这个,看看你的答案是否正确。 是的,它有效。 400 毫秒似乎是我的应用程序的最佳时间。【参考方案2】:我提交了PF 7.1 +的本土属性的PR。
https://github.com/primefaces/primefaces/pull/5138
感谢您的建议!
【讨论】:
在 SelectOnemenu 上重置 JSF Primefaces 输入值
】在SelectOnemenu上重置JSFPrimefaces输入值【英文标题】:JSFPrimefacesinputvaluesresetuponSelectOnemenu【发布时间】:2021-03-0310:03:37【问题描述】:在手动选择selectOneMenuid="format"的值时重置输入的输入值selectOneMenuid="format"的渲染效果很好。但... 查看详情
jsf/primefaces-如何显示自定义验证器的消息,但不显示同一组件上的必需验证
我有一个使用PrimeFaces的JSF2实现。我使用的是<p:selectOneRadio/>组件。当用户在无线电组件中选择“否”时,我想显示自定义消息。我已经为此创建了一个自定义验证器,并且与消息组件一起工作正常。但是,该组件也是必需的... 查看详情
如何在 Primefaces+JSF2 中显示用户点击的 url
】如何在Primefaces+JSF2中显示用户点击的url【英文标题】:HowCanishowurlsclickedbyuserinPrimefaces+JSF2【发布时间】:2012-09-2712:36:14【问题描述】:我正在使用带有Prime面孔的JSF2。我想显示用户在每个页面中点击的所有以前的链接或URL。我... 查看详情
在 PrimeFaces 中添加 Angular Js - JSF
】在PrimeFaces中添加AngularJs-JSF【英文标题】:AddAngularJsinPrimeFaces-JSF【发布时间】:2016-07-2719:11:45【问题描述】:我已经有一个带有PrimeFaces的JSF项目,但现在我需要在我的项目中添加Angularjs。有primefaces的标签所以我不知道如何使... 查看详情
如何将 jsf PrimeFaces 转换为引导程序?
】如何将jsfPrimeFaces转换为引导程序?【英文标题】:howtoconvertjsfPrimeFacesintobootstrap?【发布时间】:2015-10-0617:48:47【问题描述】:如何将javaserverfaceprimeface转换为bootstrap?该项目已经在java服务器端开发。我需要更改视图响应。【... 查看详情
延迟加载和解析 PrimeFaces JavaScript 文件
】延迟加载和解析PrimeFacesJavaScript文件【英文标题】:DeferloadingandparsingofPrimeFacesJavaScriptfiles【发布时间】:2014-06-0402:46:07【问题描述】:在使用GooglePageSpeed分析JSF2.1+PrimeFaces4.0webapp的性能时,它建议延迟解析JavaScript文件。在带有... 查看详情
JSF/Primefaces 如何将另一个域中的 .xhtml 包含到您的 .xhtml 中
】JSF/Primefaces如何将另一个域中的.xhtml包含到您的.xhtml中【英文标题】:JSF/PrimefacesHowtoincludean.xhtmlfromanotherdomainintoyour.xhtml【发布时间】:2013-06-0702:33:06【问题描述】:我正在尝试在我的.xhtml中包含另一个域(同一服务器上)上... 查看详情
从支持 Bean 刷新 JSF/PrimeFaces 接口
】从支持Bean刷新JSF/PrimeFaces接口【英文标题】:RefreshingaJSF/PrimeFacesinterfacefromthebackingBean【发布时间】:2015-04-3015:08:03【问题描述】:我的目标是使用JSF和/或PrimeFaces在网页上显示文本。文本由服务器端的进程实时更新。<?xmlvers... 查看详情
Primefaces 动态列不适用于延迟加载
】Primefaces动态列不适用于延迟加载【英文标题】:PrimefacesDynamiccolumnsnotworkingwithlazyloading【发布时间】:2014-12-2013:47:14【问题描述】:我正在使用PF5.0、JSF2.0(Mojarra)、SpringWebflow2.3。我在使用Datatable延迟加载时遇到了多个问题。a.)... 查看详情
在 JSF 2 / PrimeFaces 中使用正则表达式进行电子邮件验证
】在JSF2/PrimeFaces中使用正则表达式进行电子邮件验证【英文标题】:EmailvalidationusingregularexpressioninJSF2/PrimeFaces【发布时间】:2011-12-1401:50:59【问题描述】:我有一个包含电子邮件地址的输入字段:<h:inputTextvalue="#register.user.email... 查看详情
Primefaces FileUpload 事件未触发 - JSF 2.0
】PrimefacesFileUpload事件未触发-JSF2.0【英文标题】:PrimefacesFileUploadeventnotfiring-JSF2.0【发布时间】:2011-05-2206:24:17【问题描述】:我在Primefaces论坛上发布了我的问题,但没有人回复,所以我想我会在这里尝试。我一直在尝试让fileUp... 查看详情
Primefaces FileUpload 与 PrettyFaces 和 JSF 2.2.3
】PrimefacesFileUpload与PrettyFaces和JSF2.2.3【英文标题】:PrimefacesFileUploadwithPrettyFacesandJSF2.2.3【发布时间】:2013-12-2719:48:04【问题描述】:我在使用<p:fileupload>的页面上遇到了PrettyFaces的一些问题。当我在页面上禁用PrettyFaces... 查看详情
JSF Primefaces TabView 问题
】JSFPrimefacesTabView问题【英文标题】:JSFPrimefacesTabViewproblems【发布时间】:2012-02-2818:28:30【问题描述】:我在PF论坛上问过这个问题,但似乎没有人愿意回答,所以我想在这里碰碰运气。我有一个ui:repeat在TabView中的Ajax调用后没... 查看详情
如何将 PanelGrid 对齐到中心? JSF-Primefaces
】如何将PanelGrid对齐到中心?JSF-Primefaces【英文标题】:HowtoalignPanelGridtocenter?JSF-Primefaces【发布时间】:2013-03-1710:42:44【问题描述】:我知道有很多关于这个问题的问题,但没有一个适合我。我需要将PanelGrid对齐到中心(水平)... 查看详情
在 JSF 中使用 Primefaces 和 Bootstrap
】在JSF中使用Primefaces和Bootstrap【英文标题】:UsingPrimefacesandBootstrapinJSF【发布时间】:2015-02-1111:40:54【问题描述】:即使现在我在我的项目中使用了JSF+Primefaces,这给了我很多新的组件(来自primefaces)来工作。但是我的新客户需... 查看详情
在 PrimeFaces 3.4 JSF 2.0 中按 id 查找组件
】在PrimeFaces3.4JSF2.0中按id查找组件【英文标题】:findComponentbyidinPrimeFaces3.4JSF2.0【发布时间】:2015-07-1508:37:47【问题描述】:我想要一个在PrimeFaces3.4中通过id找到UIComponent的方法。我已经找到了一种方法来做到这一点,但它有一... 查看详情
JSF/PrimeFaces ajax 请求上的会话超时和 ViewExpiredException 处理
】JSF/PrimeFacesajax请求上的会话超时和ViewExpiredException处理【英文标题】:SessiontimeoutandViewExpiredExceptionhandlingonJSF/PrimeFacesajaxrequest【发布时间】:2012-06-2712:38:22【问题描述】:我发现这篇文章对非ajax请求很有用Howtohandlesessionexpiratio... 查看详情
如何从jsf / primefaces中的托管bean向页面添加组件[重复]
】如何从jsf/primefaces中的托管bean向页面添加组件[重复]【英文标题】:howtoaddacomponenttothepagefromamanagedbeaninjsf/primefaces[duplicate]【发布时间】:2014-01-2218:44:16【问题描述】:单击命令按钮应触发ManagedBean中的操作:将新的“outputText”... 查看详情