jsf - Primefaces 一项民意调查“暂停”另一项民意调查
问题描述
我在同一页面中有两个 primefaces 民意调查。
其中一个 ( pollLg
) 的间隔时间较长(30 秒),而另一个 ( pollSm
) 的间隔时间较短(8 秒)。
开始时pollLg
,我想pollSm
“暂停”,然后在pollLg
完成任务后继续(记住它被中断的时间)。
如果我调用PF('pollSm').stop()
和PF('pollSm').start()
内部pollLg
任务,pollSm
只会在 8 秒后再次执行。
例如,当网页打开时,我有:
pollSm executions: 8sec, 16sec, 24sec (pollLg will execute here and stop pollSm)
完成pollLg
后,pollSm
将仅在 8 秒后执行,而不是 2 秒(它被 6 秒中断)
有什么简单的方法可以做到这一点吗?
解决方案
让我首先声明 PrimeFaces 源是开放的,可以很容易地用于检查(可能是未记录的)功能。我做到了,并注意到您不能在 PrimeFaces 中轻松做到这一点,因为它的投票组件具有内置功能。在组件的 javascipt 源代码中,您可以看到它使用纯 JavaScript 计时器。
所以我开始搜索你是否可以用普通的 javascript 轻松地做到这一点,并注意到那里也没有简单的功能。幸运的是,StackOverflow 中有一个关于在 javascript 中暂停/恢复计时器的现有 Q/A,它甚至有一个关于重复计时器的答案。
如果将此与覆盖(或扩展)PrimeFaces 小部件相结合,您可以实现您想要的。
推荐阅读
- javascript - 如何在特定数字处停止 javascript 计数器
- javascript - 如何在 React 中使用来自 aws 的 GraphQL Get 查询
- angular - 角度父母到孩子
- python - 如何使用python遍历angularjs下拉菜单的元素
- excel - 搜索日期并复制并粘贴整行:VBA
- powershell - Powershell Invoke-WebRequest [处理请求时发生错误]
- automated-tests - 如何在没有 .vwf/.bdf 文件的情况下“自动”测试我的实体
- haskell - 更改变量类型以匹配预期类型
- terraform - terraform route53 解析器设置
- node.js - 使用 VS Code 调试时如何解决“ReferenceError: Office is not defined”?