我的Rails应用程序中有一个按钮。单击它时,大约有5个存储过程在后台运行(顺序)。全部完成大约需要60秒。
在此之前,我想在UI中显示某种进度条(或显示进度百分比的微调器),以使用户不会感到应用程序只是挂起。
因此,如果5个存储过程中有1个已完成,那么我们应该将进度显示为20%;否则,我们可以将进度显示为20%。如果2个存储过程完成,则显示进度为40%,依此类推。
最好的方法是什么?
(Ajax微调器似乎没有显示进度百分比的规定)
答案 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()
从控制器或单击按钮后。