【问题标题】:Realtime timer that counts down time for ruby on rails app实时计时器,用于倒计时 ruby​​ on rails 应用程序
【发布时间】:2012-02-05 20:11:20
【问题描述】:

我需要一些关于实时服务器端计时器的建议,该计时器将从 100 秒开始倒计时。服务器端定时器的原因是没有被篡改。

  • 当前使用延迟作业,但问题不是实时的,我可以通过每秒创建作业来模拟计时器,但解决方案很糟糕

  • 需要通过 ajax 调用在页面上返回服务器时间的方法获取计时器值,从而在视图中显示时间。知道如何做到这一点只是为了给出想法。即使在重新加载页面上,重新加载计时器仍会正确倒计时。

任何人都可以建议在 Rails 应用服务器端获取实时计数器吗?我想创建一个或多个独立的计时器,我可以从 railsapp 中获取一个值。

【问题讨论】:

  • 为什么重要?为什么不只是有时间倒计时工作呢?
  • 是的也可以,但需要它像后台守护进程一样运行的 servertimer,在我的 railsapp 中查询它的时间。我有充分的理由需要这个功能来复杂地写下
  • 如果原因有那么复杂,那它可能并没有你想象的那么好。简单几乎总是更好。

标签: ruby-on-rails ajax ruby-on-rails-3.1 timer


【解决方案1】:

你为什么不直接创建你需要的记录,而是添加一个“之前不要打开”的日期时间字段,你可以检查它是否可以显示?

这种事情做起来很简单,你可以在客户端设置一个计时器在 JavaScript 中倒计时,然后在适当的时候用最终数据重新加载页面。如果有人不耐烦并且提前重新加载,您可以使用简单的数学计算出剩余的秒数:

time_left_in_seconds = record.show_at.to_i - Time.now.to_i

那么您所要做的就是在该秒数内显示一个 JavaScript 计时器,然后触发页面刷新。

【讨论】:

  • 在视图方面很好的部分解决方案,但可以通过编辑 JS 来篡改?我需要使用应用程序中的一些参数重新加载页面,不确定您的解决方案是否可行,但是对于解决计时器倒计时问题,谢谢!
  • 您可以随心所欲地使用客户端计时器,并且在show_at 时间到来之前,您的服务器将拒绝吐出货物这一事实不会改变。您可以根据需要重新加载页面,或者使用有用的 jQuery get 函数来刷新它的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多