有没有更好的方法让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
然后我有$ .ajax调用/ get_size。这是一种可以接受的做法,还是有更好的替代方案我不知道?
答案 0 :(得分:1)
据我所知,是的,如果您需要通过ajax
从服务器获取数据,则需要在控制器中生成自己的操作。
你操纵数据的方式可能不同,你可以在控制器上做坏事(坏坏)或在客户端(更好),它取决于你正在构建的应用程序,但使用Javascrip MVC框架它正在成为这样做的标准方式。查看TODO MVC
唯一可能有所不同的是,如果您需要实施实时功能,可以查看WebSockets
和推送服务器,例如Faye(RailsCast)或Pusher所以你不必从执行请求的rails中提取数据X秒。
修改强>
另外,我忘了添加 Rails方式来执行ajax将使用rails.js
并链接到remote: true
属性,因此您可以使用脚本提供的事件,例如ajax:success
或ajax:failure
。您可以查看here。
而且,在Rails 4中,您可以实时Live Streaming
。