jquery - 如何使用 ajax 在嵌套 Rails 模型中处理后台任务时显示动画微调器

标签 jquery ruby-on-rails ajax delayed-job

我的具体示例非常复杂,因此我将使用 Railscasts 的 Ryan 展示的示例来讨论这一点:

http://railscasts.com/episodes/197-nested-model-form-part-2

背景

我有一个表格,比如说“调查”,其中包含任意数量的“问题”。

塞纳里奥

输入我正在“编辑调查”页面。

我想向每个“问题”字段添加一个按钮,该按钮调用一个remote_function,该函数又将一个delayed_job排队以对“问题”执行一些处理。

为了向用户提供反馈,我想禁用该按钮,并显示一个动画微调器,该微调器将一直保留到delayed_job处理“问题”为止。

提示 - 我可以向“Question”模型添加方法来指示delayed_job的状态。

那么,考虑到最佳实践,实现这一目标的最佳方法是什么?

最佳答案

进行轮询并使用与此类似的 json 进行响应:

{"finished": [1,3,3]}

然后添加轮询 JavaScript

  var interval = setInterval(function() {
    $.get("test.json", function(data) {
      for(i in data.finished) {
        //Hide spinner with id = data.finished[i]
      }
    })
  }, 5000) //Time in milliseconds

关于jquery - 如何使用 ajax 在嵌套 Rails 模型中处理后台任务时显示动画微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2184061/

相关文章:

javascript - 使用 JavaScript 自动刷新 div

使用键盘箭头和 "enter"键的导航菜单的 Javascript

ruby-on-rails - 为什么在生成模型时会创建时间戳

ruby-on-rails - Gem 安装错误数量的参数(给定 1,预期 0)

jquery - 在 Event : navigator. onLine 之后重新启动基于 jquery xhr 对象的 Ajax 请求

javascript - 异步/同步 Javascript

ruby-on-rails-3 - 导轨 : "head :ok" interpreted as "ajax:error"

ruby-on-rails - Redmine Rails 服务器堆栈级别太深错误

ajax - 使用 Ajax 从 Servlet 下载文件

javascript - 如何使用element查找第n个父元素