java实现下载时进度条提示
生活随笔
收集整理的這篇文章主要介紹了
java实现下载时进度条提示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、實現原理
? ? ? ? 計算出已經處理的數據記錄數與所有需要導出的數據記錄數的比例,根據每一個登陸用戶的不同將比例存入緩存中,前臺設計一個定時器,每隔一段時間去緩存中獲取比例,然后根據比例來展示一下下載的進度。
2、具體代碼實現
//下載比例的存儲long totalCount = 總記錄數;long a = i * 100 / totalCount;cacheService.setCache(當前登陸用戶ID+"特定的標志", a+"");--------------------------------------------------------------------------------//下載比例的獲取String cache = cacheService.getCache(當前登陸用戶ID+"特定的標志");if (cache == null) {cache = "0"; }result.put("info", cache);if("f".equals(cache)) {cacheService.setCache(session("F_UID")+"PROGRESS","0"); } $("#export").click(function(){//通過ajax去下載$.ajax({});//顯示進度條$("#myProgress").show();$("#myBarMsg").show();$("#myBarMsg").html("當前進度:0%");var elem = document.getElementById("myBar"); var width = 0;//啟動定時器var progressFunction = setInterval(progress, 1000);//定時器執行任務function progress(){$.ajax({type:"post",url:"", //獲取緩存中下載進度的urldata:{},success:function(data){if(data.info == 'f'){width = 100;elem.style.width = width + '%'; $("#myBarMsg").html("當前進度:100%,導出成功!");clearInterval(progressFunction);setTimeout(function(){ $("#myProgress").hide();$("#myBarMsg").hide(); width = 0;elem.style.width = width + '%'; }, 5000);}else{console.log("已經處理的數據條數:"+data.info);width = data.info; elem.style.width = width + '%'; $("#myBarMsg").html("當前進度:"+data.info+"%"+" (<label style='color:red;'>導出過程中請不要切換目錄,可打開新的窗口查看其他!</label>)");}},error:function(xmlHttpReq, textStatus, errorThrown){alert("導出失敗,失敗原因:" + textStatus+","+errorThrown);}});}}); <!-- css --> #myProgress {width: 100%;height: 30px;position: relative;background-color: #ddd;border-radius:5px; }#myBar {background-color: #4CAF50;width: 0px;height: 30px;position: absolute;border-radius:5px; }<!-- 下載進度 --> <div id="myProgress" style="display:none;"><div id="myBar"></div> </div> <div id="myBarMsg" z-index:100></div>?
總結
以上是生活随笔為你收集整理的java实现下载时进度条提示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 25、sql分析命令explain和de
- 下一篇: 路由器如何当交换机用tplink有线路由