javascript - 如何从 Rails 使用 AJAX 更新页面?

标签 javascript jquery ajax ruby-on-rails-3 controller

我有一个需要一段时间才能完成的操作。在开始时,它应该让用户知道“请稍候...”然后,当完成时,它应该告诉他们“完成”。

目前我设置的方式会引发双重渲染错误。

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/

相关文章:

javascript - AngularJS 通过 AJAX 调用加载多个项目

javascript - 数组对象的 Typescript 接口(interface)

javascript - 我的 HTML 文件不会链接到我的 Javascript 文件

javascript - Angularjs指令如何检测属性的变化

javascript - 有没有办法在 tinymce iframe 中加载外部 javascript 文件?

javascript - 从 Javascript 向 Servlet 发送数据

javascript - Ember-data DS.Model 中的私有(private)变量

javascript - 使用 JS 对象初始化 Google map MapTypes

javascript - 在窗口上添加点击事件,但忽略所有以 https 开头的链接

ruby-on-rails - 如何在集成测试中检查正在进行的 AJAX 调用的数量?