Javascript知识拾遗:动态创建方法+多个异步监测

本文介绍了一种Web监测系统的设计思路,该系统能够同时监测多个Server的状态。通过动态生成异步监测函数,实现对不同Server的实时监测,并利用Ajax技术进行后台通信。

    这几天在做一个Web监测系统,需要对多个Server进行监测,采用的做法就是把需要监测的Server在页面上显示出来,然后通过Ajax对各个Server进行异步监测,开始的时候,针对每个Server,我都采用同一个JS方法循环和后台进行异步通信,结果程序一跑,发现根本不能做到同时异步监测多个Server,因此我想到了在Web页面Load的时候,根据后台返回的Server的个数,动态为每个Server创建不同的JS函数来处理异步通信请求。这样就可以做到同时异步监测多个Server。代码如下:

 

Html代码,被监测的Server列表:

<body onload="initializeMethod()">
<table width="500">
<tr>
<td width="100%">
      <table width="500" id="serverTab" border="1" cellpadding="0" cellspacing="0" align="left">
        <tr bgcolor="#0099CC">
        <td width="30%"><div align="center"> Host</div></td>
        <td width="15%"><div align="center"> Port</div></td>
        <td width="15%"><div align="center"> Interval(s)</div></td>
        <td width="35%"><div align="center"> Comment</div></td>
        </tr>
        <s:iterator value="serverListByType" id="serverList"  > 
        <tr>
        <td><div align="left"><s:property value="host" /> </div></td>
        <td><div align="left"><s:property value="port" /></div></td>
        <td><div align="left"><s:property value="interval" /></div></td>
        <td><div align="left"><s:property value="comment" /> </div></td>
        </tr>
         <br /> 
        		</s:iterator>
             </table>
             </td>
             </tr>


      </table>

</body>

 JS代码,动态生成异步监测函数:

    <script type="text/javascript">
    var functionArray = new Array();
    function initializeMethod(){

    	   var serverTab=document.getElementById("serverTab");
    	   for(var i = 1; i<=serverTab.rows.length-1; i++)
      	   {
    		   functionArray[i] = function(rowId){
    		      	var xmlHttp ; 
   		    	    if(window.XMLHttpRequest) {   
   		    	           
   		    	        xmlHttp = new XMLHttpRequest;      
   		    	           
   		    	    } else if (window.ActiveXObject) {   
   		    	           
   		    	        xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");   
   		    	    } else {   
   		    	           
   		    	        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
   		    	    }   
   		            var tab=document.getElementById("serverTab");
   		            var cbx = document.getElementsByName("server_id");
   					var interval = 0;
   					var first=true;
   					//tab.rows[rowId].bgColor='FFFFFF ';
   					//var minInterval = tab.rows[1].cells[3].children[0].value ;
   		            var ServerLists="";
 		                for(var j=0;j<tab.rows[rowId].cells.length;j++)
 		                {
 		                    for(var z=0;z<tab.rows[rowId].cells[j].children.length;z++)
 		                    {
 		                      var cb= tab.rows[rowId].cells[j].children[z];
 		                      ServerLists+=cb.innerText;
 		                      ServerLists+=",";
 		                    }

 		                }
 		                ServerLists+="\n";
     		    	    var url = "startMonitor"; 
     		    	    var param = "serverList="+ServerLists;
     		    	    xmlHttp.open("post",url,true);   
     		    	    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
     		    	    xmlHttp.onreadyStatechange=function(){   

     		    	        if(xmlHttp.readyState==4) {   
     		    	            if( xmlHttp.status == 200 ){
         		    	                setInterval("functionArray["+rowId+"]("+rowId+")",interval); 
     		        	                 if(xmlHttp.responseText == 0)
     		           	                {
     		       	        	       tab.rows[rowId].bgColor='#FF0000 ';
     		           	                 }else
     		             	                {
     		           	        	     tab.rows[rowId].bgColor='#33FF33';
     		                                }
     		    	            } 
     		    	        } else {   

     		    	        }   
     		    	    }  
     		    	    xmlHttp.send(param); 


    		   };
      	   }

    	   refreshMonitorStatus();
    }
    	function  refreshMonitorStatus()
    	{
            var tab=document.getElementById("serverTab");
            var cbx = document.getElementsByName("server_id");
            for(var i=1;i<=tab.rows.length-1;i++)
            {
  	     tab.rows[i].bgColor='FFFFFF ';
          	    functionArray[i](i);
            }
       	}
    	    
        </script>

 

 

内容概要:本文详细介绍了一种基于三电平ANPC-VSG(虚拟同步发电机)构网型逆变器的复合控制策略,聚焦于双闭环控制与中点电位平衡控制的实现,适用于光伏储能系统并网的Simulink仿真模型。该模型为未发表的原创研究成果,涵盖了逆变器在并网过程中的动态响应、稳定性控制以及中点电位的有效调节,旨在提升新能源并网系统的稳定性与电能质量。文中还探讨了多种相关控制技术,如DPWMA调制、正负序分离控制、前馈控制等,充分展现了该系统在复杂电网环境下的适应性与先进性。; 适合人群:面向具备电力电子、新能源并网或自动控制理论基础的科研人员与工程技术人员,特别适合从事光伏储能、虚拟同步机、三电平逆变器等相关课题研究的研究生、高校教师及企业研发工程师。; 使用场景及目标:①用于光伏储能系统并网仿真,验证VSG控制策略在动态响应与稳定性方面的有效性;②研究三电平ANPC逆变器在不平衡工况下的中点电位控制性能;③作为高级电力系统仿真的教学与科研平台,支撑学术论文撰写、项目申报及关键技术攻关。; 阅读建议:建议结合提供的Simulink仿真模型进行实践操作,重点剖析双闭环控制结构的设计原理与中点电位平衡机制的实现细节,同时参考文中提及的DPWMA调制与前馈控制等辅助策略,以拓宽研究视野与技术路径。完整资源可通过指定公众号或网盘链接获取。
内容概要:本文提出了一种含电动汽车、光伏发电和储能系统的输配电网协同优化模型,聚焦于输电网与配电网之间的日前优化调度问题。该模型基于Matlab平台实现,通过整合多类型分布式能源的运行特性,实现源-网-荷-储的协同调度,旨在提升电力系统运行的经济性、稳定性与灵活性。研究综合考虑了电动汽车的充电行为不确定性、光伏出力的波动性以及储能系统的充放电策略,采用先进的优化算法(如灰狼优化GWO、CEEMDAN等)进行求解,有效应对新能源接入带来的系统挑战。此外,文档还延伸介绍了多时间尺度优化、需求响应、碳约束、算力-电力-热力耦合等前沿研究方向,展现了该模型在综合能源系统与智能电网领域的广泛应用前景和技术深度。; 适合人群:具备电力系统、能源工程、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,从事科研或工程应用的研究生、科研人员及工程师。; 使用场景及目标:①用于研究高比例可再生能源接入下的电网优化调度策略;②支撑电力系统中电动汽车、储能等灵活资源的协同管理与优化配置;③为综合能源系统、智能电网及低碳能源转型提供模型参考与代码实现基础。; 阅读建议:建议读者结合文中提及的优化算法(如GWO、CEEMDAN等)和仿真工具,逐步复现模型,并根据实际应用场景调整参数、拓展模型结构,以深化对协同优化机制与综合能源系统运行规律的理解与应用。
内容概要:本文围绕三相并网逆变器的控制策略展开深入研究,重点探讨了虚拟阻抗与统一有源阻尼相结合的控制方法,并系统对比分析了SVPWM(空间矢量脉宽调制)与SPWM(正弦脉宽调制)在并网系统中的调制性能。通过MATLAB/Simulink平台构建仿真模型,验证了所提出控制策略在提升系统稳定性、抑制谐振振荡、改善并网电流波形质量等方面的优越性,尤其在弱电网条件下表现出较强的鲁棒性与适应能力。研究还进一步涵盖了多电平逆变器(如ANPC、T型三电平)的关键技术,包括中点电位平衡控制、低电压穿越(LVRT)能力提升、正负序分离控制以及电网前馈补偿等内容,体现了现代并网逆变器控制策略的综合性与先进性,为新能源并网系统的高性能运行提供了理论支持与技术路径。; 适合人群:具备电力电子、电气工程、新能源发电或电力系统自动化等相关专业背景的科研人员、硕士/博士研究生及工程技术人员,熟悉MATLAB/Simulink仿真环境,有志于从事并网逆变器控制、电能质量治理、可再生能源并网等方向的研究与开发工作。; 使用场景及目标:①用于三相并网逆变器控制系统的设计、优化与性能验证;②支撑科研项目中关于有源阻尼、虚拟阻抗、多电平调制等关键技术的仿真分析与实验验证;③作为高校电力电子与电力系统类课程的教学案例或毕业设计参考,提升学生对并网控制策略的理解与实践能力。; 阅读建议:建议结合文中所述Simulink仿真实例进行动手复现,重点关注不同调制方式(SVPWM/SPWM)下系统的动态响应与稳态性能差异,深入理解虚拟阻抗与有源阻尼的物理意义及其参数整定方法,同时可延伸学习虚拟同步发电机(VSG)、构网型控制(Grid-Forming)等前沿技术,以全面把握新型电力系统中逆变器的核心作用与发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值