这些天你可能会发现 RJS 信息更难获得,我认为不显眼的 JavaScript 在 Rails 社区中获得了更多的关注。你所描述的当然是可能的。我的建议是花一点时间用 jQuery 学习 AJAX。以下是您可能采取的一些步骤:1) 向控制器操作发出 GET 请求,2) 做某事,使用 JSON 响应,3) 在您的成功处理程序代码客户端中,确定是否需要再次调用服务器。
检查 jQuery 上的 Railscast,这里是转录
http://asciicasts.com/episodes/136-jquery
jQuery $.get() 或 $.getJSON
http://api.jquery.com/jQuery.get/
Rails 的respond_to
块,在这里查看“wants.js”代码
http://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/
您可以使用序列化为 JSON 的 Ruby 对象进行响应:
render :json => @thing.to_json
Using$.getJSON()
会将响应反序列化为 JavaScript 对象,因此您可以使用点语法轻松访问属性。例如(伪代码):
$.getJSON('/url-to-thing.js', function(thing) {
if( thing.status != 'done' ) { /* call function again */ }
});
这样,一旦“事情”“完成”,函数就会停止调用。开始熟悉客户端和服务器部分的职责可能会让人望而生畏,但从长远来看,通过允许您开发更具动态性和交互性的 Web 应用程序,您将获得回报。