博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上次的AJAX定时刷新多ID不正确,这次请教了高手之后补全
阅读量:7175 次
发布时间:2019-06-29

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

关键是setInterval无法传递参数,所以用了匿名函数再包裹一下就好了。

 

 

复制代码
//重置发布进度    function resetPercent(id_data){        $.ajax({              url:'/autodeploy/reset_percent/' + id_data,              success: function(json){                },            });    };    //间隔刷新,显示百分比,AJAX调用rest_framework框架    var _interval = {};    function showPercent(id_data){        //var _interval;        var percent_value;        var id_subserver = id_data.split("-")[0]        $.getJSON("/api/subserver/" + id_subserver,            function(data,state){                if (state == 'success') {                    percent_value_array = data.deploy_status.split(",");                    percent_value = percent_value_array[0];                    cmd_value = percent_value_array[1];                    $('#' + id_data).html("
" + cmd_value + ' ' + percent_value + "%
"); console.log(percent_value[0]) if ( percent_value != 100 ){ //_interval = setInterval(showPercent(id_data), 3000); } else { clearInterval(_interval[id_data]); $('#' + id_data).html("
100%
"); }; }; } ); }; $(".btn-multi-deploy").click(function(){ var deploypool_id = $(this).attr("deploypool_id") var group_data = $("#deploy-form" + deploypool_id).serialize() var deploy_type = $(this).attr("deploy_type") var _self = this; console.log(deploypool_id, group_data) //因为涉及到模态对话态中的AJAX输出ID定位,所以用了两个数组来重置更新进度和刷新百分比。可以优化。 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("select-deployversion") != -1) { deploy_id = group_array[key_data].split("=")[1] }; if (group_array[key_data].indexOf("check-server") != -1) { id_s_array.push(group_array[key_data].split("=")[1]) id_array.push(group_array[key_data].split("=")[1] + "-" +deploy_id) }; }; promiseDEPLOY = $.ajax({ url:'{% url "autodeploy:group-cmd" %}', type: 'post', data:{ group_data: group_data, deploy_type: deploy_type, }, dataType: 'json', beforeSend: function(){ result_output = $(_self).siblings("p.result_output"); result_output_desc = $(_self).siblings("p.result_output_desc"); $(_self).attr('disabled',"true"); $(_self).append(" "); result_output_desc.append(" 集群发布中,请耐心等候...."); // result_output.html("
集群发布中,请耐心等候....
"); //发送前重置 for( index=0;index < id_s_array.length;index++){ resetPercent(id_s_array[index]); } }, success: function(json){ $(_self).children('i').remove(); $(_self).append(" ") result_output_desc.append(""); result_output_desc.append("异步队列分发完成,每个服务器开始更新。"); //发送后获取进度 for( index=0;index < id_array.length;index++){ var key = id_array[index]; //_interval = setInterval(function(){showPercent(key)}, 3000); _interval[key] = setInterval(function(){showPercent(key);}, 3000); } }, error: function(){ result_output_desc.append("
服务器内部错误
"); result_output_desc.append(""); $(_self).children('i').remove(); result_output.html("
"); }, complete: function(){ } });/* end cmd-run stop */ });
复制代码

 

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

你可能感兴趣的文章
数论 - SGU 107 987654321 problem
查看>>
Java集合源码分析(六)TreeSet<E>
查看>>
Linux系统启动管理 系统启动流程
查看>>
vim中设置Python自动补全
查看>>
单例模式
查看>>
安装nfs服务器
查看>>
DefaultWebSessionManager DefaultSessionManager DefaultWebSecurityManager SessionsSecurityManager
查看>>
深入解析“硬链接”与“软链接”
查看>>
UItextField 取消软键盘的方法
查看>>
[转]常用iOS图片处理方法
查看>>
[Delphi] 设置线程区域语言防止乱码
查看>>
将bbr功能合入到centos7.3
查看>>
hdu 三部曲1 Is the Information Reliable? 差分约束 bellman_ford算法
查看>>
sql语句update的用法
查看>>
Angular2+学习第3篇 基本知识-组件
查看>>
几个和结束相关的内容
查看>>
OOP的概述
查看>>
1.5站立会议
查看>>
笔记,将CString转换为数值
查看>>
构造 + 离散数学、重言式 - POJ 3295 Tautology
查看>>