【问题标题】:Countdown function connected to ajax连接ajax的倒计时功能
【发布时间】:2012-01-09 21:48:30
【问题描述】:

我目前有一个 PrimeFaces <p:poll> ajax 轮询函数,它每 90 秒执行一次以刷新一些数据。我被要求制作这种视觉效果,我只是想知道最快/最轻松的方式?

我的想法是我有两个选择:

  1. 创建每秒执行一次的 PrimeFaces <p:poll>,减少全局 JavaScript 数字变量,当它变为 0 时执行 ajax 以刷新数据,尽管这可能会导致处理延迟?

  2. 在 jQuery/JS 中查找/构建某种倒计时计时器,并在倒计时完成时执行上述操作。

希望有人有更清洁/更好的方法。

【问题讨论】:

  • "I've been asked to make this visual" - 你到底是什么意思?
  • 投票功能的可视化表示。即一个倒数计时器,当它达到 0 时,它会执行一个 ajax 函数并使用新检索到的数据更新网页。然后倒数计时器被重置,该过程再次开始。
  • 关于 JavaScript 倒计时有a number of previous questions。有什么理由没有人回答你的问题吗?
  • 因为我并没有专门询问如何使用 Javascript 计时器来实现。我在问我建议的方法是否是可行的路径,就资源而言,它们中的哪一个是“最快/最轻”的。我正在开发一个资源繁重的平台,所以我试图让新功能/特性保持轻量级。我使用了搜索功能,没有任何特定于 JSF 和/或 Primefaces 上下文的内容,所以我询问社区是否有使用上述组件库的好的解决方案。如果没有,那么我将回到您提到的其他 Javascript 倒数计时器
  • 啊,明白了。我将您之前的评论解释为您有兴趣使用 JavaScript 来实现它。我对 JSF 没有任何经验,但祝你的项目好运!

标签: jquery ajax jsf-2 primefaces


【解决方案1】:

我认为对于这种情况,最好使用<p:remoteCommand 而不是<p:poll

这样,您可以使用 JQuery 编写倒计时/显示代码,并在计数达到 0 时调用远程命令并将计数重置为 90。

<p:remoteCommand name="fetchData" action="#{...}" update="..."/>
<!-- fetchData here will be a global javascript function. --> 

RemoteCommand showcase

使用&lt;p:poll 的一个问题是投票的计时器和显示计时器不会同步。

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2019-10-20
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多