如何在Ruby on Rails中的UI中显示进度百分比?

时间:2018-12-31 07:12:22

标签: ruby-on-rails progress-bar

我的Rails应用程序中有一个按钮。单击它时,大约有5个存储过程在后台运行(顺序)。全部完成大约需要60秒。

在此之前,我想在UI中显示某种进度条(或显示进度百分比的微调器),以使用户不会感到应用程序只是挂起。

因此,如果5个存储过程中有1个已完成,那么我们应该将进度显示为20%;否则,我们可以将进度显示为20%。如果2个存储过程完成,则显示进度为40%,依此类推。

最好的方法是什么?

(Ajax微调器似乎没有显示进度百分比的规定)

2 个答案:

答案 0 :(得分:1)

您可以使用引导进度条并从js或jquery更新值。 Here是示例。

答案 1 :(得分:1)

Js

HTML

var i = 0;
fill_bar();
function fill_bar(){
  setInterval(function() {
      var art = i;
      doSomethingWith(art)
      if(i >= 5) {return false;}
  }, 5000); 
}
valuer = 0;
function doSomethingWith(art){
valuer = valuer + 20;
    $('.progress-bar').css('width', valuer+'%').attr('aria-valuenow', valuer);  
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<div class="progress progress-striped active">
  <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
  </div>
</div>

您可以调用方法

fill_bar()

从控制器或单击按钮后。