layui 进度条(动态加载后台数据)

数据分发进度

思路:
1.后端:计算一次分发过程中,成功的数据量与分发总量的百分比,更新到session中
2.ajax调用方法获取session中的当前进度
3.layui展示

① 计算数据分发成功的百分比,存到session中

/**
 * 计算进度百分比存储到session中
 */

HttpSession session = request.getSession();
session.setAttribute("progress", ValueJudger.toPercent(count, list.size()));

/**
* 计算百分数
* @param count:分发成功数据量
* @param limit:分发总量
* @return
*/
public static String toPercent(int count, int limit) {
    if (count % limit == 0) {
        return count /limit * 100 + "%";
    }else {
        return (double)Math.round(count / (double)limit * 1000)/10 + "%";
    }
}

② Ajax从session中取值

/**
 * @Description 数据分发百分比
 * @param request
 * @return
 * @throws Exception
 */
@RequestMapping(value = "/dispenseProgress")
@ResponseBody
public String getTreeProgress(HttpServletRequest request) throws Exception {
	return (String) request.getSession().getAttribute("progress");
}

③ HTML代码及JS

<div class="layui-progress layui-progress-big" lay-filter="progress" lay-showPercent="yes" >
    <div id = "demo" class="layui-progress-bar layui-bg-green" lay-percent="10%" ></div>
</div>
layui.use('element', function(){
    var element = layui.element;
    var scanTime = 1000; //定义扫描时间
    var timer = setInterval(function (){ //进度条方法查看进度
        $.ajax({
	    url: dispenseProgress,
	    success: function (data) {
	        //动态设置百分比
	        var percent = data;
	        $('.layui-progress-bar').attr('lay-percent', percent);
	        element.init();
	        element.progress('progress', percent)
	        if(percent == "100%"){
	        clearInterval(timer); //进度到100%,注意关闭定时器
	        }
	    },
            error: function (e) {
	     	
            }
        });
    }, scanTime);
});

参考:https://blog.csdn.net/yangmaod/article/details/101059135

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值