我有一个需要一段时间才能完成的操作。在开始时,它应该让用户知道“请稍候...”然后,当完成时,它应该告诉他们“完成”。
目前我设置的方式会引发双重渲染错误。
Controller :
def do_work
render 'do_work.js'
.
. # takes a while...
.
.
redirect_to :action => :work_is_done
end
do_work.js.erb:
$("#status").text("please wait...");
执行此操作的最佳方法是什么? 使用 Rails 3 和 jQuery。
谢谢。
最佳答案
您必须从 do_work.js
重定向
$("#status").text("please wait...");
window.setInterval(function(){
window.location.replace(<%= escape_javascript work_is_done_url %>)
}, 6000);
6000 - 是以毫秒为单位的时间,之后函数将被触发
更新
ofc,您将需要一个命名路由work_is_done
才能使其正常工作。
关于javascript - 如何从 Rails 使用 AJAX 更新页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877905/