我的具体示例非常复杂,因此我将使用 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/