Rails'渲染'功能可以在短时间内渲染

时间:2013-02-27 13:25:38

标签: ruby-on-rails render

我得到了

render :text => "Some text"

我真正需要的是这样的事情

render :text => "Some text", :duration => 5000

“一些文字”将在短时间内呈现,然后它将消失。

如果无法实现,我可以使用:alert标记进行相同的操作吗?具体如何?

1 个答案:

答案 0 :(得分:2)

您必须考虑使用HTTP,这是无状态的。这意味着:客户端和服务器之间没有连接。它始终只是:

  • 客户:您好的服务器,请给我http://.../someResource
  • 服务器:这是

每次客户端请求资源时,服务器都不记得他以前曾在那里(至少在普通严格的HTTP中)。然后是人们发明了Sessions和Cookies,但这是一个不同的故事。

我想说的是:服务器只能发送请求的资源,完成后他不知道有客户端请求了什么。

动态行为只有一个选择:JavaScript(从CSS3开始,也应该可以触发在5000毫秒后隐藏一些div的动画。)

现在你必须考虑:

  • 客户端本身是否应隐藏警报框? (这是使用jQuery的最常见和最简单的方法)
  • 服务器应该告诉客户端隐藏它吗? (我知道我上面说过这是不可能的,但它实际上是使用了一个名为server push的东西,它在名为atmosphere(以前称为comet)的库中实现。但它不是真正的消息从服务器,它更多是来自客户端的第二个请求,当有事件要发送到客户端时,服务器首先得到答复(long-pooling))。注意:这也需要客户端的JavaScript。

我会说:使用第一个解决方案(jQuery)',因为它已经内置到Rails中(至少如果你在Rails 3.1或更高版本)

看看这里:How to hide a div after some time period?