我正试图接近解决上一个问题的解决方案。
我想尝试的方案如下:
所以,这次我的问题是:如何正确地将XMLHttpRequest调用嵌入到rjs代码中?
我想知道的一些事情是:
我应该创建一个新线程以避免堆栈溢出。我应该使用哪些铁路助手(如果有的话)?
有没有人曾经在Rails或其他框架上做过类似的事情?
我的想法是否理智?
答案 0 :(得分:0)
您可能会发现现在更难以找到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
使用$.getJSON()
会将响应反序列化为JavaScript对象,因此您可以使用点语法轻松访问属性。例如(伪代码):
$.getJSON('/url-to-thing.js', function(thing) {
if( thing.status != 'done' ) { /* call function again */ }
});
这样,一旦“事物”完成,该函数就会停止被调用。熟悉客户端和服务器部件的责任最初可能令人生畏,但从长远来看,通过允许您开发更具动态性和交互性的Web应用程序,我们将获得回报。