Java 進度條百分比簡單算法,根據數據量計算


1. 先把數據計算生成百分比

public JsonResult add(@Validated(ValidateConfig.ADD.class)SecKillDevice secKillDevice, HttpServletRequest request)
    {
        //首先循環 獲取當前選取的商家list
        for (int m = 0;m <= merchantList.size()-1; m++){
            //計算百分比 商家數 / ((商家總數-1)* 100%) = 進度條的百分比   減一是因為m從0開始計算
             Double aDouble = m/((merchantList.size()-1) * 0.01);
             int intValue=aDouble.intValue();
             Integer bfb=Integer.valueOf(intValue);
             //將進度值存儲到session中
             request.getSession().setAttribute("processValue", bfb);          

        }
        return new JsonResult().success("success");
    }            

2. 從session將執行進度值取出來並返回給用戶

1秒請求一次
public Object getProcess(HttpServletRequest request) {
        //從session將執行進度值取出來並返回給用戶
        Object obj = request.getSession().getAttribute("processValue");
        return obj;
    }

 

3.前端頁面,為了關閉添加頁面以后繼續可以保存進度條進度,所以在后面加了判斷,前端為 layui框架

//定義定時器
var timer;
//輪詢請求進度數據
getProcessvalue:function(){
//1秒請求一次進度條的數據
    timer = setInterval(function () {
        $.post('/ad/secKillDevice/getProcess.json',function(data){
 
            $('.layui-progress').show();  //顯示進度條
            //更新進度條
            element.progress('demo', data+'%');
 
            // 這個是列表頁面的判斷邏輯,因為為了加載頁面的時候,繼續保存進度條的進度
            // 如果進度條百分之百 或者 百分之0 不在調用后台輪詢接口 關閉定時器, 隱藏進度條
            if (data == 0 || data == 100){<br>              //清空定時器
                clearInterval(timer);
                $('.layui-progress').hide();
                return;
            }
        });
    }, 1000);
 
},

  

 4.html div樣式

1 <div class="layui-progress layui-progress-big" lay-filter="demo" lay-showPercent="true">
2         <div class="layui-progress-bar" lay-percent="0%"></div>
3 </div>

 

 

僅供參考!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM