博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不算完美的实现了自动化部署的进度实时更新
阅读量:6712 次
发布时间:2019-06-25

本文共 3213 字,大约阅读时间需要 10 分钟。

呵呵,思路比较明确,但实现时的JS确实麻烦。

想过用ANGULAR.JS,但不太熟悉。

以前用的JS函数setInterval() 有时停不下来。

后来,看那书上说setTimeout() 可以实现所有setInterval() 功能。

然后,再用promise的then功能来实现先后顺序。。

搞定。。。

短期内不会更新这个版本的进度提示啦。

复制代码
function resetPercent(id_data){        $.ajax({              url:'/a/reset_percent/' + id_data,              success: function(json){                },            });    };    $(".btn-multi-deploy").click(function(){          var group_data = $("#deploy-form").serialize();          var deploy_type = $(this).attr("deploy_type");          var _self = this;          var id_array = []          var id_s_array = []          var group_array = group_data.split("&");          for (var key_data in group_array) {            if (group_array[key_data].indexOf("deployversion_id") != -1) {                deploy_id = group_array[key_data].split("=")[1]            };            if (group_array[key_data].indexOf("check-server") != -1) {                id_array.push(group_array[key_data].split("=")[1])            };          };          var promiseDEPLOY = $.ajax({            url:'{% url "autodeploy:deploy-group-cmd-v2" %}',            type: 'post',            data:{                group_cmd: group_data,                deploy_type: deploy_type,            },            dataType: 'json',            beforeSend: function(){                $(_self).attr('disabled',"true");                $(_self).append(" ");                for( index=0;index < id_array.length;index++){                    resetPercent(id_array[index]);                }            },            success: function(json){                $(_self).children('i').remove();                $(_self).append(" ")            },            error: function(){                $(_self).children('i').remove();            },            complete: function(){                $(_self).children('i').remove();                $(_self).append(" ")            }          });/* end promiseDEPLOY stop */      promiseShowStatus = promiseDEPLOY.then(function(){        for( index=0;index < id_array.length;index++){                var key = id_array[index];                queryStatus(key);            }            function queryStatus(id_subserver){                $.getJSON("/api/subserver/"+id_subserver,                    function(data,state){                        if (state == 'success') {                            var percent_value,                                cmd_value;                            percent_value_array = data.deploy_status.split(",");                            percent_value = percent_value_array[0];                            cmd_value = percent_value_array[1];                            $('#' + id_subserver).html("
" + cmd_value + ' ' + percent_value + "%
"); if ( percent_value > 98 ){ $('#' + id_subserver).html("
100%
"); clearTimeout(st_func); }; }; } ); console.log('queryStatus...'+id_subserver); var st_func = setTimeout(function(){queryStatus(id_subserver)}, 3000); } }); });
复制代码

转载地址:http://goolo.baihongyu.com/

你可能感兴趣的文章
linux服务ssh详解
查看>>
cat命令一些不常用但很有用的参数
查看>>
双色球 脱壳加去效验
查看>>
php安装使用memcached
查看>>
#22 系统进程调度、at、batch、mail、crontab
查看>>
Intellij IDEA Debug调试技巧
查看>>
OPENSSL问题,使用fsockopen()函数提示错误
查看>>
lvs详细介绍
查看>>
ci框架hook钩子
查看>>
PHP Warning: PHP Startup: unable to load dynamic library
查看>>
metasploit(MSF)终端命令大全
查看>>
Linux下php安装Redis扩展
查看>>
sublime text2 汉化
查看>>
管理信息系统测试方法总结(二)
查看>>
HTML设置超链接的颜色样式
查看>>
EMC与NetApp NAS对比
查看>>
bash算数运算&命令引用
查看>>
Javascript的冒泡排序和二分查找
查看>>
Linux下常用的日志收集命令
查看>>
JAVA NIO(知识一)
查看>>