【发布时间】:2014-02-10 23:27:43
【问题描述】:
我的 rails 应用程序中有一个 ajax 请求,它从我的控制器操作中返回一个变量。在控制器操作内部,我有一个循环,可能需要一些时间才能通过。
控制器
def myAction
$j = 1
until $j > list_size do
array << { :foo => $j }
$j +=1;
end
@myvariable = array.to_json
end
myAction.js.erb
var myVariable = JSON.parse("<%= escape_javascript(raw @myvariable) %>");
for (var k = 0; k < myVariable.length; k++) {
$("#myDiv").append(myVariable[k].foo);
}
我希望能够将循环的每个阶段的结果呈现给 js.erb 部分,而不是等待循环完成。这是否可能在不中断循环并在循环结束之前提前结束动作的情况下实现?也许是这样的(错误的伪代码):
控制器
def myAction
$j = 1
until $j > list_size do
array << { :foo => $j }
render array.to_json
$j +=1;
end
end
myAction.js.erb
var myVariable = JSON.parse("<%= escape_javascript(raw @myvariable) %>");
$("#myDiv").append(myVariable.foo);
【问题讨论】:
-
也许这和你的问题有关:stackoverflow.com/questions/1402757/…
-
谢谢,但不会自动渲染退出循环(在它到达下一个之前)?
标签: javascript ruby-on-rails ajax