【问题标题】:Rails dynamic progress bar from running taskRails 运行任务的动态进度条
【发布时间】:2012-12-03 00:23:23
【问题描述】:

我有一个由浏览器调用的“长”任务。 我想做的是创建一个动态进度条,在同一页面或灯箱中显示“幕后”任务的进度(不刷新页面)。

我的想法是使用这样的 JQuery 栏:http://docs.jquery.com/UI/API/1.8/Progressbar

我的问题是:

如何从任务(在 lib/ 中)调用 JQuery(或一般的视图)来更新栏?

仅供参考,我也使用 ActiveAdmin,这不仅仅是问题,因为它使用预编译视图。

【问题讨论】:

  • 此任务是 REST 操作还是 Rake TASK?
  • @Rogier 这是一个 Rake 任务

标签: jquery ruby-on-rails-3 progress-bar activeadmin


【解决方案1】:

我会在控制器中创建一个新的 REST 操作(或者理想情况下重用现有的操作)来为进度条提供信息。

我还会尝试使用 Ajax 每隔一段时间使用 JQuery 调用控制器。

我认为这种面对进度条实现的方式比从 lib 任务中调用视图更好。

类似这样的:

$(function() {
  setInterval(updateProgressBar, 1000);
});
function updateProgressBar() {
  //Invoke controller with ajax, and update progressBar
}

如果您不喜欢在客户端玩轮询,您可能会在 HTML5 中找到有趣的服务器事件。

【讨论】:

  • +1 用于解决方案,但我想避免异步过程,例如通过 setInterval 调用函数
【解决方案2】:

这是不久前的帖子,但如果它对某人有帮助,那么有一个宝石可以做到这一点。它似乎不再被维护,但它是如何实现所请求行为的一个很好的例子:

https://github.com/d4be4st/progress_job

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多