Primefaces一个民意调查"pause"另一个民意调查



我在同一页中有两个素数面轮询。

其中之一(pollLg(具有较长的间隔时间(30秒(,而另一个(pollSm(具有较小的间隔(8秒(。

pollLg启动时,我希望pollSm"暂停",然后在pollLg完成任务后继续(记住中断的时间(。

如果我在pollLg任务中调用PF('pollSm').stop()PF('pollSm').start(),那么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中计时器的问答,它甚至有一个关于重复计时器的答案。

如果您将其与覆盖(或扩展(PrimeFaces小部件相结合,就可以实现您想要的功能。

最新更新