jQuery 进度条

HTML代码

<!-- panel right for batch command result-->
<div class="result">
    <div class="panel-heading">
        <h3 class="panel-title">Result</h3>
    </div>
    <div class="panel-body">
        <div class="progress hide">
            <div id="task_progress" style="width: 0%;" class="progress-bar progress-bar-info"></div>
        </div>
        <!--Large modal button-->
        <div id="task_result" class="form-control" style="min-height: 200px"></div>
    </div>
</div>

jQuery代码

// Ajax获取执行结果
function  GetTaskResult(task_id){
    $.getJSON("{% url 'task_result' %}",{'task_id':task_id},function(callback){
        var result_ele = "";
        var res_status = {
            0:'成功',
            1:'失败',
            3:'超时',
            2:'执行中'
        };

        // 所有任务已执行
        var all_task_done = true;

        // 进度条实现
        var finished_task_counter = 0 ;
        $.each(callback,function (index,i) {
                // 字符串拼接
                var single_res_title = "<p>"+ i.host__hostname + "(" +i.host__manage_ip +")" +
                        "-----------------" + res_status[i.status] +"</p>";
                var single_res_body = "<pre>" + i.result +"</pre>";
                var single_res = single_res_title + single_res_body;
                result_ele += single_res;

                // 任务还在执行中
                if ( i.status == 2){
                    all_task_done = false
                // 执行完成
                }else {
                    finished_task_counter += 1
                }
        });

        //代表所有任务都执行完了
        if (all_task_done){
            // 清除定时器
            clearInterval(get_result_timer);
        }
        
        // 实现进度条功能
        var finished_percent = parseInt(finished_task_counter / callback.length*100);
        // 默认隐藏进度条
        $("#task_progress").parent().removeClass("hide");
        // 打印进度条
        $("#task_progress").css("width", finished_percent+"%").text(finished_percent+"%");
        
        // 执行结果回写
        $("#task_result").html(result_ele);

    });//end getJSON
}

 

posted @ 2017-08-25 22:39  Vincen_shen  阅读(225)  评论(0)    收藏  举报