1. 程式人生 > 實用技巧 >Java 進度條百分比簡單演算法,根據資料量計算

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){
              //清空定時器 clearInterval(timer); $('.layui-progress').hide(); return; } }); }, 1000); },

  

僅供參考!!