1

有没有比为这个任务创建一个控制器并每隔一段时间通过 $.ajax 调用它更好的方法让 ajax 返回实时数据?

例如,要从 Redis 获取数据,我有一个控制器,其方法类似于

def get_size
 begin
  render :text => JSON.generate({:data => redis_instance.get("some_key"})
 rescue Exception => e
  render :text => JSON.generate({:data => nil})
 end
end

然后我对 /get_size 进行了 $.ajax 调用。这是一种可以接受的做法,还是有更好的选择我不知道?

4

1 回答 1

1

据我所知,是的,如果您需要通过您的服务器获取数据,您ajax需要在控制器中生成自己的操作。

操作数据的方式可能会有所不同,您可以在控制器(坏坏)或客户端(更好更好)上进行操作,这取决于您正在构建的应用程序,但使用 Javascrip MVC 框架它正在成为标准方式去做这个。检查TODO MVC

唯一可能有点不同的是,如果您需要实现实时功能,您可以检查WebSockets,以及像Faye ( RailsCast ) 或Pusher这样的推送服务器,这样您就不必从 Rails 中提取数据来执行请求了X 秒。

编辑

另外,我忘了补充一点,Rails执行 ajax 的方法将使用rails.js并与remote: true属性链接,因此您可以使用脚本提供的事件来处理响应,例如ajax:successor ajax:failure。你可以在这里查看

而且,在 Rails 4 中,您可以Live Streaming实时进行。

于 2013-06-30T15:36:27.653 回答